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