正则贪婪、懒惰和强占类型之间的区别

来源:互联网 发布:淘宝写论文 编辑:程序博客网 时间:2024/06/05 14:36

贪婪、懒惰和强占类型之间的区别

贪婪类型将会试图匹配整个字符串。如果匹配不成功,那么会回退一个字符再匹配,直到匹配成功为止。

懒惰类型将从字符串的第一个字符开始匹配,如果不成功,则再增加一个字符。直到成功为止。

强占类型将会试图匹配整个字符串。如果匹配不成功,并不会回退。



下面我们来测试一下:

请输入正则表达式:.*foo // 贪婪请输入检索文本:xfooxxxxxxfoo检索到匹配文本"xfooxxxxxxfoo"从位置 013。请输入正则表达式:.*?foo // 懒惰请输入检索文本:xfooxxxxxxfoo检索到匹配文本"xfoo"从位置 04。检索到匹配文本"xxxxxxfoo"从位置 413。请输入正则表达式:.*+foo // 独占请输入检索文本:xfooxxxxxxfoo没有检索到匹配的文本。
举例如下:
([0-9]{0,2}月[0-9]{0,2}日[\\s\\S]+?浏览)
这是懒惰模式,
注意红色部分在中间,而不是
([0-9]{0,2}月[0-9]{0,2}日[\\s\\S]*浏览)+?