我试图在 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}"