`

正则表达式的量词解释

 
阅读更多

thinking in java书上对正则表达式翻译不准确,导致学习困难,特从网上摘取了对量词的更准确浅显的定义,以此帮助自己记忆.

正则表达式的量词分别式贪婪,惰性,支配性
1.贪婪量词:先看整个字符串是不是一个匹配。如果没有发现匹配,
           它去掉最后字符串中的最后一个字符,并再次尝试。
2.惰性量词: 先看字符串中的第一个字母是不是一个匹配。如果单独
           这一个字符还不够,就读入下一个字符,组成两个字符的字符串。
           如果还是没有发现匹配,惰性量词继续从字符串添加字符
           直到发现一个匹配或者整个字符串都检查过也没有匹配。

惰性量词和贪婪量词的工作方式正好是相反的。

3.支配量词:只尝试匹配整个字符串。如果整个字符串不能产生匹配,不做
           进一步尝试,支配量词其实简单的说,就是一刀切。

表示这3种量词:
贪婪惰性支配描述
???+零次或一次出现
**?*+零次或多次出现
++?++一次或多次出现
{n}{n}?{n}+恰好n次出现
{n,m}{n,m}?{n,m}+至少n次枝多m次出现
{n,}{n,}?{n,}+至少n次出现


贪婪量词测试
<script>
var str="abbbaabbbaaabbb1234";
var re1=/.*bbb/g;
alert(re1.exec(str));
</script>

惰性量词测试
<script>
var str="abbbaabbbaaabbb1234";
var re1=/.*?bbb/g;
alert(re1.exec(str));
</script>

支配性量词测试
<script>
var str="abbbaabbbaaabbb1234";
var re1=/.*+bbb/g;
alert(re1.exec(str));
</script>
由于使用支配性量词不能匹配到任何字符串,所以没有截图。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics