正则表达式学习笔记(4) 贪婪、惰性和支配量词
贪婪量词:
惰性量词:
支配量词:
贪婪量词惰性量词支配量词 描述 例如:我们要从字符串abbbaabbbaaabbb1234中获得abbb,aabbb,aaabbb的匹配 1、贪婪量词
| |||
1 varregexp=/.*bbb/g; 2 vara=str.match(regexp); 3 alert(a.length);//output:1 4 alert(a[0]);//output:abbbaabbbaaabbb |
贪婪量词的工作过程可以这样表示:
a)abbbaabbbaaabbb1234
b)abbbaabbbaaabbb123
c)abbbaabbbaaabbb12
d)abbbaabbbaaabbb1
e)abbbaabbbaaabbb //true
可以看到,贪婪量词在取得一次匹配后就会停止工作,虽然我们加了'g'(全局匹配)
2、惰性量词
2 vara=str.match(regexp);
3 alert(a.length);//output:3
4 alert(a[0]);//output:abbb
5 alert(a[1]);//output:aabbb
6 alert(a[2]);//output:aaabbb
惰性量词的工作过程可以这样表示:
a)a
b)ab
c)abb
d)abbb //保存结果,并从下一个位置重新开始
e)a
f)aa
g)aab
h)aabb
j)aabbb //保存结果,并从下一个位置重新开始
e)a
e)aa
e)aaa
e)aaab
e)aaabb
e)aaabbb //保存结果,并从下一个位置重新开始
由于JS是不支持支配量词的,所以支配量词我们只能用JAVA来演示:
2 Patternp=pile(".*+bbb");
3 Matcherm=p.matcher(string);
4 System.out.println(m.find());//output:false
5
因为支配量词采用一刀切的匹配方式,如:
a)abbbaabbbaaabbb1234 //false
原文地址:http://www.educity.cn/java/502329.html
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!