js正则表达式,能不能帮我分析下,为什么出现这样的结果 10
vara="helloworldworld";a.match(/(.*?)wor/);结果是[''hellowor","hello"],为什么出现的是这两个值呢,求解释...
var a="hello world world "; a.match(/(.*?)wor/);
结果是 [''hello wor","hello "],为什么出现的是这两个值呢,求解释 展开
结果是 [''hello wor","hello "],为什么出现的是这两个值呢,求解释 展开
1个回答
展开全部
这个的含意不是两个值, 而是
[完全匹配的字符串, 第一个捕获组捕获的字符串, 第二个捕获组捕获的字符串, ...]
所以
"hello wor"匹配(.*?)wor
"hello "匹配.*?
[完全匹配的字符串, 第一个捕获组捕获的字符串, 第二个捕获组捕获的字符串, ...]
所以
"hello wor"匹配(.*?)wor
"hello "匹配.*?
追问
那么,为啥没出现第二个补货组捕获的字符串呢?
还有,用/(.*?)wor/去匹配"hello world world ",的结果到底应该是啥呢?麻烦您帮我解答下
追答
我後面写了省略号意味著有多少个捕获组就有捕获多少个
.*和.*?的区别是後者是非贪婪匹配, 也就是说, 如果用(.*)wor来匹配的话会匹配到hello word wor
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询