"hellohelloworld".match(/(hello){1,2}?/);
我在{1,2}后面加上?应该开启费贪婪模式了吧,但是为什么输出结果还是匹配了两次hello
"hellohelloworld".match(/(hello){1,2}?/);
我在{1,2}后面加上?应该开启费贪婪模式了吧,但是为什么输出结果还是匹配了两次hello
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
第一个是全局匹配第二个是括号匹配
其实你的写法是对的 match方法返回的数组除了第一位之后都是匹配括号内的结果
console.log("hellohelloworld".match(/(hello){1,2}?/))
//[ "hello", "hello" ]console.log("hellohelloworld".match(/(hello){1,2}/))
//[ "hellohello", "hello" ]