注意到 Rubular.com 和 Javascript 正则表达式之间的区别:
'catdogdogcatdog'.match(/cat(dog)/g); // JS returns ['catdog', 'catdog']
我希望捕获“狗”两次,但我却捕获了两次“猫狗”。
Rubular 两次捕获“狗”:http://rubular.com/r/o7NkBnNs63
这里到底发生了什么?
最佳答案
不,Rubular 还匹配 catdog
两次。它还向您显示捕获组的内容,该组捕获了 dog
两次。
你想要这样的东西:
var myregexp = /cat(dog)/g;
var match = myregexp.exec(subject);
while (match != null) {
dog = match[1]
// do something, Gromit!
match = myregexp.exec(subject);
}
关于javascript - Rubular 与 javascript 正则表达式捕获组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7556181/