5

git grep "\<blah\>"在我的 linux 开发服务器上定期运行,但我刚刚发现我无法在 Mac (Mac OS X 10.6.8)\<\>使用(无法使用 = 它没有找到任何东西)。Mac中的正则表达式语法是否不同?

我尝试使用git grep -E "\<blah\>"但无济于事!:-(

4

3 回答 3

6

在为此苦苦挣扎之后,我在 BSD 邮件列表上发现了这篇非常有用的帖子。所以这是(虽然相当丑陋)的解决方案:

git grep "[[:<:]]blah[[:>:]]"

git-grep的-w标志也有效,但有时您只想匹配单词的开头或结尾。

更新:这在 OS X 10.9 "Mavericks" 中有所改变。现在您可以使用\<\>\b[[:<:]]并且[[:>:]]不再受支持。

于 2013-02-17T21:20:05.153 回答
5

我猜这是由 BSD vs Linux grep 库引起的。

查看 git grep 的 -w (仅在单词边界匹配模式)选项是否为您执行此操作:

$ git grep -w blah
于 2011-09-30T11:20:11.767 回答
3

PCRE您可以在支持的情况下编译 git并将其git grep -P "\bblah\b"用于单词边界。

这是关于如何使用 OSX Homebrew 编译 git 的指南: http ://realultimateprogramming.blogspot.com/2012/01/how-to-enable-git-grep-p-on-os-x-using.html

于 2013-04-26T18:29:12.120 回答