日期:2014-05-16  浏览次数:20409 次

JS正则(贪婪模式)

js学习笔记

?

用到的几个链接

?

http://apps.hi.baidu.com/share/detail/9221711

?

可以当API用,说的很详细。

?

当该字符紧跟在任何一个其他限制符 (*, +, ?, {n }, {n ,}, {n ,m }) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 "oooo",'o+?' 将匹配单个 "o",而 'o+' 将匹配所有 'o'。

?

http://blog.sina.com.cn/s/blog_50a82dcd010095sh.html

?

讲解贪婪惰性

?

正则表达式量词分别是:贪婪的、惰性的、支配性的。

贪婪:

? * + {n} {n,m} {n,}

惰性:

?? ?*? ?+? ?{n}? ?{n,m}? ?{n,}?

支配:

?+ ?*+ ?++??{n}+??{n,m}+ ?{n,}+

?

分别的意思是:

零次或一次出现、零次或多次出现、一次或多次出现、恰好N次出现、至少N次最多M次出现、至少N次出现。

?

贪婪量词:先看整个字符串是否匹配,如果不匹配就把最后一个字符去掉在进行匹配,不匹配继续去掉最后一个字符,指导找到一个匹配或者不剩任何字符才停止。

?

惰性量词:先看第一个字符串是否匹配,如果第一个不匹配就在加入第二个字符串依此类推,指导找到一个匹配或者不剩任何字符才停止,贪婪量词与贪婪量词的方法正好相反.

?

浏览器对量词的支持还不完善,IE和OPERA都不支持量词,MOZILLA把支配量词看作是贪婪的

?

例子:

var str = 'aabbazbbwwbbaa';
var arr =str.match(/.*bb/);?//aabbazbbwwbb,贪婪的
var arr =str.match(/.*?bb/g);?//aabb azbb wwbb 返回一个数组包含3个值,惰性的

?

精华帖 http://www.iteye.com/topic/481228

也很详细

?