正则表达式:非贪婪式匹配

有时候我们使用正则表达式只希望尽可能少的匹配。

比如在对html文件进行正则匹配时:

 <span>a</span><span>b</span>

如果我们使用.*匹配

<span>.*</span>

匹配结果是

<span>a</span><span>b</span>

很明显不能满足我们的需求。

这时候我们就需要使用非贪婪式匹配,也可以称为懒惰匹配

懒惰匹配与贪婪匹配的差别就是在贪婪匹配的后面加个?号

同样对上面的html进行匹配,我们使用.*?

匹配结果是

<span>a</span>

和我们预期效果一样。

除了.*?这种匹配方式,非贪婪式匹配还包括:

.+?    匹配一次
.??    不匹配
.{m,n}?   匹配m次

 

posted @ 2017-12-20 08:29  micmouse521  阅读(14011)  评论(0编辑  收藏  举报