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

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

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

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

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



下面我们来测试一下:

请输入正则表达式:.*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]*浏览)+?

猜你喜欢

转载自blog.csdn.net/yvhkyiu/article/details/72597169