素材牛VIP会员
正则表达式的非贪婪模式
 大***咒  分类:JavaScript  人气:1272  回帖:6  发布于6年前 收藏
"hellohelloworld".match(/(hello){1,2}?/);


我在{1,2}后面加上?应该开启费贪婪模式了吧,但是为什么输出结果还是匹配了两次hello

讨论这个帖子(6)垃圾回帖将一律封号处理……

Lv1 新人
黄***o JS工程师 6年前#1

如果你只要匹配一次,那你"hellohelloworld".match(/hello/)就好啦

Lv6 码匠
tl***an CEO 6年前#2

第一个是全局匹配第二个是括号匹配
其实你的写法是对的 match方法返回的数组除了第一位之后都是匹配括号内的结果
console.log("hellohelloworld".match(/(hello){1,2}?/))//[ "hello", "hello" ]
console.log("hellohelloworld".match(/(hello){1,2}/))//[ "hellohello", "hello" ]

Lv1 新人
qq***22 职业无 2年前#3
学习了,谢谢分享!
Lv1 新人
qq***93 职业无 2年前#4
学习了,谢谢分享!
Lv1 新人
qq***95 职业无 2年前#5
学习了,谢谢分享!
Lv2 入门
wx***05 职业无 1年前#6
nice
 文明上网,理性发言!   😉 阿里云幸运券,戳我领取