RegEx中深层嵌套的组

时间:2014-04-03 16:14:27

标签: javascript regex

我正在回答一个问题,我从tenub得到了comment

评论是:

  

您是否需要使用$ {1} 000,因为前缀内容也包含数字?

所以,如果我使用这个正则表达式。 (不要寻求实用性。这是故意的问题)

^(((((((((((.{3})))))))))))

所以在字符串"some string"中。$1$11的群组包含。 "som"

现在如果我想像some1字符串一样替换上面的字符串,我会做的就是:

$11 // Group 1 followed by my replace string "1"

但是,这与第11组相匹配,第11组也由$11表示。

我知道回调函数,但我需要知道是否有任何特定的正则表达式。

所以,我的问题:

  1. 是否有任何特殊语法,以便替换字符串1和Group11之间没有冲突,由$11
  2. 表示
  3. 为什么这样的嵌套组在正则表达式中有效。使用嵌套组的测试用例是什么?

1 个答案:

答案 0 :(得分:3)

您可以在匹配组前加0来解决歧义。根据{{​​3}},您只能有1位或2位数的反向引用。

"some string".replace(/^(((((((((((.{3})))))))))))/, '$011'); 
\\ => "som1e string"