如何在grep中使用非捕获组?

时间:2013-02-28 13:07:58

标签: grep pcre

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

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

wikilinkColor
externalLinkColor
parameterColor
...

但我得到了:

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

1 个答案:

答案 0 :(得分:54)

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

grep -Po "(?<=syntaxHighlighterConfig\.)[a-zA-Z]+Color" file