我有两个正则表达式:
«(\w+\.)+?»
和
«(\w+\.)+»
我认为第一个会尝试找到最小的模式,但对于下一个,我不知道。
有人知道吗?
它被称为“贪婪”与“非贪婪”,这里有一个很好的概述。
考虑一些更简单的事情:
.+?\s
如果文本是这句话,第一个例子会匹配“If”,因为“?” 修饰符让它寻找最小的匹配。
.+\s
如果这个句子被第二个例子匹配,整个句子将被返回(直到 .),因为它是最大的匹配。
这是一个贪婪与非贪婪正则表达式的示例。(它在 java 文档中有介绍)
http://docs.oracle.com/javase/tutorial/essential/regex/quant.html