python - 正则表达式查找某些模式之间的所有字符串
问题描述
我的输入字符串可以是以下行之一:
Active App: Coffee (priority 34)
Active App: Hot Bread (priority 20)
Active App: Hot Baked Bread (priority 1)
etc...
在这种情况下Coffee
,它可以是任何字符串 [a-zA-Z](一个或多个单词),而不是 " "。
在“ (priority 34)
”中,只有整数会改变。
那么如何从这一行得到“ Coffee
”/“ Hot Bread
”/“ ”呢?Hot Baked Bread
我无法正确处理单词之间的空格。
解决方案
这是一个使用 python 正则表达式的简单解决方案match()
:
它忽略您要捕获的应用程序名称之后的字符串部分。但如果重要的话,可以添加。
它将捕获直到它看到一个(
,然后从字符串中去除尾随的空白字符。
import re;
myStr = "Active App: Hot Baked Bread (priority 34)";
appStr = re.match("Active App: ([^\(]*)", myStr);
print(appStr.group(1).rstrip());
这是一个仅捕获实际“活动应用程序”名称的版本,之后无需修剪字符串。并在打印之前检查是否找到了匹配项:
import re;
myStr = "Active App: Coffee Some (priority 34)";
appStringMatch = re.match("Active App: (.*)\s\(", myStr);
if appStringMatch:
print(appStringMatch.group(1));
推荐阅读
- c++ - 为什么这个 for 循环条件不起作用?
- angular - 有什么方法可以在 Angular7 中将变量从一个组件更改为另一个组件?
- php - Scraping show infinte loop above php 7.0?
- android - How to save the value from intent to variable and pass it to webservice api?
- spring-websocket - Spring stomp websocket“不完整的帧,正在重置输入缓冲区......”
- android - 使用 PUT 请求执行 httpclient 时出现异常
- mysql - NaviCat 中的 MySQL 语法错误 / WP 编辑器中的 OK
- testing - 无法从开发分支创建 jar
- python - 如何通过 Selenium 和 Python 在模态窗口中单击关闭按钮
- tfs - 使用 VssConnection 和用户名/密码连接到 Azure DevOps (TFS) 服务器