Cette réponse suggère que grep -P
Prend en charge la syntaxe (?:pattern)
, Mais cela ne semble pas fonctionner pour moi (le groupe est toujours capturé et affiché dans le cadre de la correspondance ). Suis-je en train de manquer quelque chose?
J'essaie grep -oP "(?:syntaxHighlighterConfig\.)[a-zA-Z]+Color" SyntaxHighlighter.js
sur ce code , et je m'attends à ce que les résultats soient:
wikilinkColor
externalLinkColor
parameterColor
...
mais à la place je reçois:
syntaxHighlighterConfig.wikilinkColor
syntaxHighlighterConfig.externalLinkColor
syntaxHighlighterConfig.parameterColor
...
"Non-capture" ne signifie pas que le groupe ne fait pas partie du match; cela signifie que la valeur du groupe n'est pas enregistrée pour être utilisée dans les références arrières. Ce que vous recherchez est une assertion de largeur nulle :
grep -Po "(?<=syntaxHighlighterConfig\.)[a-zA-Z]+Color" file