原文是 http://java.sun.com/docs/books/tutorial/essential/regex/quant.html
有时候感慨到底java人有多少看过了tutorial
Greedy, Reluctant, and Possessive
input string xfooxxxxxxfoo.
Enter your regex: .*foo // greedy quantifier
Enter input string to search: xfooxxxxxxfoo
I found the text "xfooxxxxxxfoo" starting at index 0 and ending at index 13.
Greedy 其实是整个字符串开始匹配,然后慢慢的backs off,这样就能得到最大匹配串
(backs off的行为到底是怎么样的我没有研究)
Enter your regex: .*?foo // reluctant quantifier
Enter input string to search: xfooxxxxxxfoo
I found the text "xfoo" starting at index 0 and ending at index 4.
I found the text "xxxxxxfoo" starting at index 4 and ending at index 13.
reluctant 是从字符串的最开始开始匹配,慢慢的增加,所以匹配到的是最小字串
Enter your regex: .*+foo // possessive quantifier
Enter input string to search: xfooxxxxxxfoo
No match found.
possessive 是greeedy + no backs off,相当于整个字符串都塞进来看,结果.*就匹配了所有串,foo没有匹配到,所有就no match found
最后推荐一下 pattern 工具,这个工具的tutorial也很不错
http://www.regular-expressions.info/tutorial.html
有时候感慨到底java人有多少看过了tutorial
Greedy, Reluctant, and Possessive
input string xfooxxxxxxfoo.
Enter your regex: .*foo // greedy quantifier
Enter input string to search: xfooxxxxxxfoo
I found the text "xfooxxxxxxfoo" starting at index 0 and ending at index 13.
Greedy 其实是整个字符串开始匹配,然后慢慢的backs off,这样就能得到最大匹配串
(backs off的行为到底是怎么样的我没有研究)
Enter your regex: .*?foo // reluctant quantifier
Enter input string to search: xfooxxxxxxfoo
I found the text "xfoo" starting at index 0 and ending at index 4.
I found the text "xxxxxxfoo" starting at index 4 and ending at index 13.
reluctant 是从字符串的最开始开始匹配,慢慢的增加,所以匹配到的是最小字串
Enter your regex: .*+foo // possessive quantifier
Enter input string to search: xfooxxxxxxfoo
No match found.
possessive 是greeedy + no backs off,相当于整个字符串都塞进来看,结果.*就匹配了所有串,foo没有匹配到,所有就no match found
最后推荐一下 pattern 工具,这个工具的tutorial也很不错
http://www.regular-expressions.info/tutorial.html
本文详细介绍了正则表达式中的三种量词:贪婪、勉强及占有量词,并通过实例解释了它们的区别。此外,还推荐了一款实用的Pattern工具。
1860

被折叠的 条评论
为什么被折叠?



