代码之家  ›  专栏  ›  技术社区  ›  Mikko Rantalainen

如何修复:致命:返回引用无效

  •  -2
  • Mikko Rantalainen  · 技术社区  · 8 年前

    我尝试在Git回购中查找三个重复字符(句点或破折号除外)的出现。有人能解释一下为什么这不起作用吗?

    $ git grep -n "([^.-])\1{2}"
    fatal: command line, '([^.-])\1{2}': Invalid back reference
    

    为什么 \1 对第一个捕获组的后引用无效吗?

    1 回复  |  直到 8 年前
        1
  •  2
  •   choroba    8 年前

    要创建捕获组,需要反斜杠括号。您还需要对花括号进行反斜杠,使其成为量词:

    git grep -n "\([^.-]\)\1\{2\}"
    

    或者,使用扩展的或与Perl兼容的正则表达式:

    git grep -nE "([^.-])\1{2}"
    git grep -nP "([^.-])\1{2}"