匹配特殊字符

时间:2018-12-06 08:07:21

标签: regex

我需要捕获一些内容,直到,(逗号)为止。

有效负载1示例:AgentBrand: Internet Explorer,
有效负载2示例:AgentBrand: OutlookPlug-in,

从上述有效载荷中,我需要捕获AgentBrand:之后的所有内容 直到命令(,)。

我尝试过AgentBrand:\ s +(\ w + \ s + \ w +),但这将成为冗长的正则表达式。

谢谢

1 个答案:

答案 0 :(得分:1)

您正在使用的当前正则表达式-AgentBrand:\s+(\w+\s+\w+)仅会捕获至少两个单词之间用空格隔开的情况,即使在这种情况下,它也只会提取前两个单词(如果可能更多)。

更好的正则表达式是-AgentBrand:\s*(.*?),

这是什么

AgentBrand:-查找字符串'AgentBrand:'

\s*-匹配零个或多个空格字符

(.*?)-非贪婪地捕获所有字符[进行最小匹配才能满足结果]

,-在末尾查找逗号

此外,正则表达式的长度也不总是避免使用正则表达式的好理由。您的示例中的正则表达式并不长,并且相当简单,如果满足您的所有要求,则可以自由使用。查看正则表达式的复杂性是一个更好的选择