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