非贪婪匹配的效率 zz

可能有不少的人和我一样,有过这样的经历:当我们要匹配类似 "

内容

" 或者 "[b]加粗[/b]" 这样的文本时,我们根据正向预搜索功能写出这样的表达式:"

([^< ]|<(?!/td>))*

" 或者 "

((?!

).)*"。

    当发现非贪婪匹配之时,恍然大悟,同样功能的表达式可以写得如此简单:"

.*?

"。 顿时间如获至宝,凡是按边界匹配的地方,尽量使用简捷的非贪婪匹配 ".*?"。
Continue reading “非贪婪匹配的效率 zz”

匹配次数中的贪婪与非贪婪(zz)

在使用修饰匹配次数的特殊符号时,有几种表示方法可以使同一个表达式能够匹配不同的次数,比如:"{m,n}", "{m,}", "?", "*", "+",具体匹配的次数随被匹配的字符串而定。这种重复匹配不定次数的表达式在匹配过程中,总是尽可能多的匹配。

Continue reading “匹配次数中的贪婪与非贪婪(zz)”