我需要捕获一些内容,直到,
(逗号)为止。
有效负载1示例:AgentBrand: Internet Explorer,
有效负载2示例:AgentBrand: OutlookPlug-in,
从上述有效载荷中,我需要捕获AgentBrand:
之后的所有内容
直到命令(,
)。
我尝试过AgentBrand:\ s +(\ w + \ s + \ w +),但这将成为冗长的正则表达式。
谢谢
答案 0 :(得分:1)
您正在使用的当前正则表达式-AgentBrand:\s+(\w+\s+\w+)
仅会捕获至少两个单词之间用空格隔开的情况,即使在这种情况下,它也只会提取前两个单词(如果可能更多)。
更好的正则表达式是-AgentBrand:\s*(.*?),
这是什么
AgentBrand:
-查找字符串'AgentBrand:'
\s*
-匹配零个或多个空格字符
(.*?)
-非贪婪地捕获所有字符[进行最小匹配才能满足结果]
,
-在末尾查找逗号
此外,正则表达式的长度也不总是避免使用正则表达式的好理由。您的示例中的正则表达式并不长,并且相当简单,如果满足您的所有要求,则可以自由使用。查看正则表达式的复杂性是一个更好的选择