什么“匹配x并记住匹配”在regexp中意味着什么

时间:2014-12-31 15:40:36

标签: javascript regex

请原谅我,如果它似乎是微不足道的,只是为了理解正则表达式: 正如here所述,带有字符(x):

(x)           matches x and remembers 

第一部分" 匹配"我能理解,但第二部分" 记得"对我来说理解有点乏味。 有人可以帮助以更简单的方式解释它吗?

2 个答案:

答案 0 :(得分:3)

它被称为捕获组。使用反向引用($1$2,...),您可以在替换字符串中引用它:

'R2D5'.replace(/(\d)/g, '$1$1')
// => "R22D55"

您还可以在模式中使用反向引用(\1\2,...):

'ABBCCDEF'.match(/(.)\1/g)  // to match consecutive character
// => ["BB", "CC"]

使用替换功能时,您将获得其他参数:

'R2D5'.replace(/(\d)/g, function(fullMatch, capture1) {
    return (parseInt(capture1) + 1).toString();
})
// => "R3D6"

答案 1 :(得分:0)

在大多数正则表达式中,你可以指定一个“捕获组”并在以后调用它们:

"something".replace(/so(me)/, '$1 ')

此处,捕获组为(me) - 结果为me thing