JavaScript正则表达式模式匹配——贪婪模式和惰性模式

Posted Aiden郭祥跃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript正则表达式模式匹配——贪婪模式和惰性模式相关的知识,希望对你有一定的参考价值。

 1 var pattern=/[a-z]+/;    //这里使用了贪婪模式,
 2 var str=‘abcdefg‘;   
 3 alert(str.replace(pattern,‘1‘));  //所有的字符串变成了1
 4 
 5 var pattern=/[a-z]+?/;    //这里使用了惰性模式,
 6 var str=‘abcdefg‘;   
 7 alert(str.replace(pattern,‘1‘));  //只有第一个字符变成了1,后面没有匹配
 8     
 9 var pattern=/[a-z]+?/;    //开启全局,并且使用惰性模式,
10 var str=‘abcdefg‘;   
11 alert(str.replace(pattern,‘1‘));  //每一个字母替换成了1
12 
13 var pattern=/6(.*)6/;    //使用了贪婪模式,
14 var str=‘6google6 6google6 6google6‘;   //匹配到了google6 6google6 6google
15 document.write(str.replace(pattern,‘<strong>$1<strong>‘)); //结果:<strong>google6 6google6 6google<strong>
16 
17 var pattern=/6(.*?)6/;    //使用了惰性模式,
18 var str=‘6google6 6google6 6google6‘;   
19 document.write(str.replace(pattern,‘<strong>$1<strong>‘)); //结果:<strong>google<strong> 6google6 6google6
20 
21 var pattern=/6(.*?)6/g;    //使用了惰性模式,开启全局
22 var str=‘6google6 6google6 6google6‘;   
23 document.write(str.replace(pattern,‘<strong>$1<strong>‘)); 
24 //结果:<strong>google<strong> <strong>google<strong> <strong>google<strong>
25 //结果正确
26 
27 var pattern=/6([^6]*)6/g;    //另一种惰性,屏蔽了6的匹配,也就是两边的包含字符
28 var str=‘6google6 6google6 6google6‘;   
29 document.write(str.replace(pattern,‘<strong>$1<strong>‘)); 

 

以上是关于JavaScript正则表达式模式匹配——贪婪模式和惰性模式的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式贪婪与非贪婪模式

浅谈正则表达式匹配模式—贪婪模式

第11.9节 Python正则表达式的贪婪模式和非贪婪模式

python正则表达式贪婪与非贪婪模式

js正则匹配总结

python 正则贪婪模式和非贪婪模式