贪婪、懒惰和强占类型之间的区别
贪婪类型将会试图匹配整个字符串。如果匹配不成功,那么会回退一个字符再匹配,直到匹配成功为止。
懒惰类型将从字符串的第一个字符开始匹配,如果不成功,则再增加一个字符。直到成功为止。
强占类型将会试图匹配整个字符串。如果匹配不成功,并不会回退。
下面我们来测试一下:
请输入正则表达式:.*foo // 贪婪
请输入检索文本:xfooxxxxxxfoo
检索到匹配文本"xfooxxxxxxfoo"从位置 0 到 13。
请输入正则表达式:.*?foo // 懒惰
请输入检索文本:xfooxxxxxxfoo
检索到匹配文本"xfoo"从位置 0 到 4。
检索到匹配文本"xxxxxxfoo"从位置 4 到 13。
请输入正则表达式:.*+foo // 独占
请输入检索文本:xfooxxxxxxfoo
没有检索到匹配的文本。
举例如下:
([0-9]{0,2}月[0-9]{0,2}日[\\s\\S]+?浏览)
这是懒惰模式,
注意红色部分在中间,而不是
([0-9]{0,2}月[0-9]{0,2}日[\\s\\S]*浏览)+?