javascript - Rubular 与 javascript 正则表达式捕获组

标签 javascript regex rubular

注意到 Rubular.com 和 Javascript 正则表达式之间的区别:

'catdogdogcatdog'.match(/cat(dog)/g);  // JS returns ['catdog', 'catdog']  

我希望捕获“狗”两次,但我却捕获了两次“猫狗”。

Rubular 两次捕获“狗”:http://rubular.com/r/o7NkBnNs63

这里到底发生了什么?

最佳答案

不,Rubular 还匹配 catdog 两次。它向您显示捕获组的内容,该组捕获了 dog 两次。

screen shot from rubular

你想要这样的东西:

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/

相关文章:

javascript - 需要 Jquery SlideUp() 函数

javascript - 上传到数据库时,反斜杠将从 JSON 字符串中删除

JavaScript 等价于 php DOMDocument 对象

Ruby 正则表达式 Rubular 与现实

javascript - 当数据缓存在本地时,回流避免每次都命中服务器

c - Flex 中文字内的多行匹配

mysql - 如何使用 REGEXP MySQL 函数查找超过 2 个点的电子邮件?

ruby - 正则表达式 ruby​​ 电话号码

javascript - Vue 自定义选择带有对象值的组件