贪婪Java正则表达式
我明白了?可以用来使修饰词只匹配第一次出现的情况,防止贪婪,但可能我误解了它的工作原理。如果字符串为:贪婪Java正则表达式,java,regex,Java,Regex,我明白了?可以用来使修饰词只匹配第一次出现的情况,防止贪婪,但可能我误解了它的工作原理。如果字符串为: 12344456 …我想捕获三个。我一直在努力: ^一二(.*)(四)+?.$ …但这给了我三四个。我做错了什么?我试过?和?,只试了(四个),但它不起作用。如果您想捕获三个,只需执行以下操作: ^one two (\w+) four 只要这样做: ^one two (.*?) four.*$ 或者您可以使用\S,这意味着非空白字符 ^one two (\\S+) four.*$ 这:
12344456
…我想捕获三个。我一直在努力:
^一二(.*)(四)+?.$
…但这给了我三四个。我做错了什么?我试过?
和?
,只试了(四个)
,但它不起作用。如果您想捕获三个
,只需执行以下操作:
^one two (\w+) four
只要这样做:
^one two (.*?) four.*$
或者您可以使用\S
,这意味着非空白字符
^one two (\\S+) four.*$
这:
表示匹配一个两个,然后,尽可能多地匹配(.*)
,直到您看到一个四个,重复,后跟任意字符
可能您最好在空白处拆分此字符串并检查单词(“one”,…)。应该也是贪婪的(.*)
。非贪婪限定符位于*
之后,因此(.*)
请参阅。特别是关于贪婪和不情愿的条款。
^one two (.*)(four)+?.*$