2

我有两个正则表达式:

«(\w+\.)+?»

«(\w+\.)+»

我认为第一个会尝试找到最小的模式,但对于下一个,我不知道。

有人知道吗?

4

2 回答 2

4

它被称为“贪婪”与“非贪婪”,这里有一个很好的概述

考虑一些更简单的事情:

.+?\s

如果文本是这句话,第一个例子会匹配“If”,因为“?” 修饰符让它寻找最小的匹配。

.+\s

如果这个句子被第二个例子匹配,整个句子将被返回(直到 .),因为它是最大的匹配。

于 2012-04-21T20:40:41.237 回答
1

这是一个贪婪与非贪婪正则表达式的示例。(它在 java 文档中有介绍)

http://docs.oracle.com/javase/tutorial/essential/regex/quant.html

于 2012-04-21T20:43:45.723 回答