解决方法:致命:反向引用无效



我试图在 git 存储库中查找三个重复字符的出现,而不是句点或破折号。有人可以解释为什么这不起作用:

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

为什么1不是对第一个捕获组的有效反向引用?

若要创建捕获组,需要反斜杠括号。您还需要反斜杠大括号以使它们成为量词:

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

或者,使用扩展或与 Perl 兼容的正则表达式,分别使用文字括号和大括号进行捕获和量化:

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

最新更新