这个正则是什么意思
var template="{a} + {b} = {a+b}";
template.match(/\{(.*?)\}/g);
//结果:["{a}", "{b}", "{a+b}"]
不是很懂在*后面加?代表什么,望解答~
这个正则是什么意思
var template="{a} + {b} = {a+b}";
template.match(/\{(.*?)\}/g);
//结果:["{a}", "{b}", "{a+b}"]
不是很懂在*后面加?代表什么,望解答~
正则匹配默认采用贪婪模式,使用?采用非贪婪模式。
对于题主的文本{a} + {b} = {a+b}
\{(.*)\}
匹配,匹配过程为按照最长的结果,{...不管中间是有几个}{,都算内容...},结果就是"{a} + {b} = {a+b}"这一条结果。2 回答1.3k 阅读✓ 已解决
1 回答565 阅读
1 回答562 阅读
应该是贪婪匹配和惰性匹配的区别。
问号让默认的贪婪匹配变成了惰性匹配,不允许删除字符来尝试匹配,只是简单的从左到右匹配
或者说贪婪模式会尽可能的去多匹配内容