Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
贪婪Java正则表达式_Java_Regex - Fatal编程技术网

贪婪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)+?.*$