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

「非キャプチャ」とは、グループが試合に参加していないという意味ではありません。これは、グループの値が back-references で使用するために保存されていないことを意味します。あなたが探しているのは、後読みゼロ幅アサーションです:

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