我有几个字符串:
john doe happy
george smith is happy
这是我的正则表达式:
([a-zA-Z ]+) (is happy|happy)
我需要第1组总是像“john doe”或“george smith”这样的名字
我需要第2组永远是“快乐”或“快乐”
现在,“乔治·史密斯很高兴”总是与“乔治史密斯是”和“快乐”相匹配......当我真的希望它是“乔治史密斯”和“快乐”时
如何让“快乐”优先于“快乐”?
答案 0 :(得分:3)
+
是贪婪的,这意味着它会匹配尽可能多的字符,因此您永远不会将is happy
与正则表达式匹配。您可以将其更改为惰性匹配,方法是将其更改为+?
,其匹配尽可能少的字符(仍然是一个或多个):
([a-zA-Z ]+?) (is happy|happy)