网络编程
位置:首页>> 网络编程>> JavaScript>> JavaScript正则表达式的贪婪匹配和非贪婪匹配

JavaScript正则表达式的贪婪匹配和非贪婪匹配

作者:白夜行1994  发布时间:2024-04-30 09:53:01 

标签:js,正则表达式,贪婪,非贪婪

所谓贪婪匹配就是匹配重复字符是尽可能多的匹配,比如:


"aaaaa".match(/a+/);
//["aaaaa", index: 0, input: "aaaaa"]

非贪婪匹配就是尽可能少的匹配,用法就是在量词后面加上一个“?”,比如:


"aaaaa".match(/a+?/);
//["a", index: 0, input: "aaaaa"]

但是非贪婪匹配有时候和我们期待的并不一样,比如:


"aaab".match(/a+b/);
["aaab", index: 0, input: "aaab"]
"aaab".match(/a+?b/);
["aaab", index: 0, input: "aaab"]

在我们期待的情况下非贪婪匹配应该是匹配"ab"才对但是结果却和贪婪匹配时一样的。
在《权威指南》中有这么一句话:正则表达式的模式匹配总是会寻找字符串中第一个可能匹配的位置。
个人对这句话的理解是:上例中正则表达式会先找到第一个字符a,因为a后面连接的字符有可能形成匹配,这是正则表达式就认定这个位置的字符了,然后开始往后进行匹配,如果像第一个例子中那样非贪婪匹配,匹配到第一个a就结束了,但是第二个例子中还要匹配b所以不得不接着往下匹配直到匹配到b为止结束。

总结

以上所述是小编给大家介绍的JavaScript正则表达式的贪婪匹配和非贪婪匹配网站的支持!

来源:http://blog.csdn.net/qq_34356563/article/details/77844188

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com