贪婪与懒惰--正则表达式

正则表达式默认的情况下,会在满足匹配条件下尽可能的匹配更多内容。如 a.*b,用他来匹配 aabab ,它会匹配整个 aabab ,而不会只匹配到 aab 为止,这就是贪婪匹配。

与贪婪匹配对应的是,在满足匹配条件的情况下尽可能的匹配更少的内容,这就是懒惰匹配。

上述例子对应的懒惰匹配规则为:

a.*?b

如果用该表达式去匹配 aabab ,那么就会得到 aab 和 ab 这样两个匹配结果。

常用的懒惰限定符如下:

懒惰限定符说明
*? 重复任意次,但尽可能少重复
+? 重复 1 次或更多次,但尽可能少重复
?? 重复 0 次或 1 次,但尽可能少重复
{n,} 重复 n 次以上,但尽可能少重复
{n,m} 重复 n 到 m 次,但尽可能少重复
posted @ 2017-02-21 13:56  haiwei.sun  阅读(144)  评论(0编辑  收藏  举报
返回顶部