使用 K 运算符搜索和替换

鉴于文字:

foo:吧

我想用 baz 替换“foo:”之后的任何内容,但我想保留“foo:”。这可以通过这样的捕获组来完成:

s/(foo: ).*/$1baz/

结果如下:

foo:baz

例 1

或者我们可以使用\K,它忘记以前匹配的所有内容,使用如下模式:

s/foo: \K.*/baz/

正则表达式匹配“foo:”,然后遇到\K,以前的匹配字符被认为是理所当然的,并且由正则表达式保留,这意味着只有 .*匹配的字符串将被 baz 替换,从而产生文本:

foo:baz

例 2