0

我想使用 pcregrep 及其 --color 选项来突出显示遵循特定模式的文本:

例如,如果 file.txt 包含:

bob says hi
chloe says hello

然后运行:

pcregrep --color '(?:says)(.*)' file.txt

印刷

鲍勃打招呼
克洛伊打招呼

但我想要的是:

鲍勃打招呼
克洛伊打招呼

有没有办法使用 pcregrep 并让它只突出显示遵循特定正则表达式的文本?

4

1 回答 1

1

答案似乎是否定的,您不能只为匹配的一部分着色,即使它没有(?:..)像您的示例中那样捕获。

但是,如果您改为使用积极的后向断言,它锚定匹配但不是匹配的一部分,您可以实现您想要的:

pcregrep --color '(?<=says)(.*)' data

结果:

在此处输入图像描述

于 2019-01-26T00:49:47.730 回答