51

这个答案表明grep -P支持(?:pattern)语法,但它似乎对我不起作用(该组仍被捕获并显示为匹配的一部分)。我错过了什么吗?

我正在尝试grep -oP "(?:syntaxHighlighterConfig\.)[a-zA-Z]+Color" SyntaxHighlighter.js代码,并期望结果是:

wikilinkColor
externalLinkColor
parameterColor
...

但相反,我得到:

syntaxHighlighterConfig.wikilinkColor
syntaxHighlighterConfig.externalLinkColor
syntaxHighlighterConfig.parameterColor
...
4

1 回答 1

74

“非捕获”并不意味着该组不是比赛的一部分;这意味着该组的值不会保存以供反向引用使用。您正在寻找的是一个后视零宽度断言

grep -Po "(?<=syntaxHighlighterConfig\.)[a-zA-Z]+Color" file
于 2013-02-28T13:18:45.147 回答