Java正则表达式运算符优先级
我有几条线索:
john doe happy
george smith is happy
下面是我的正则表达式:
([a-zA-Z ]+) (is happy|happy)
我需要第一组的名字总是像“john doe”或“george smith”
我需要第二组总是“快乐”或“很快乐”
现在,“乔治·史密斯快乐”总是与“乔治·史密斯快乐”和“快乐”相匹配。。。当我真的希望它是“乔治·史密斯”和“快乐”
我如何使“是快乐的”优先于“快乐的”
你可以在下面搜索框中键入要查询的问题!
我有几条线索:
john doe happy
george smith is happy
下面是我的正则表达式:
([a-zA-Z ]+) (is happy|happy)
我需要第一组的名字总是像“john doe”或“george smith”
我需要第二组总是“快乐”或“很快乐”
现在,“乔治·史密斯快乐”总是与“乔治·史密斯快乐”和“快乐”相匹配。。。当我真的希望它是“乔治·史密斯”和“快乐”
我如何使“是快乐的”优先于“快乐的”
# 1 楼答案
+
是贪婪的,这意味着它将匹配尽可能多的字符,因此您永远不会在编写时将is happy
与正则表达式匹配。您可以通过将其更改为+?
将其更改为惰性匹配,这将匹配尽可能少的字符(仍然是一个或多个):