我正在使用下面的正则表达式将 abc1,cde2,efg3 替换为 hello 但不知何故它不起作用
:%s/\(\d\{2}:\d\{2}:\d\{2\}\s\)\([A-z0-9]*\)/hello/gc
3 月 17 日 02:25:01 abc1 micro:开始 use.slice。
Mar 17 02:25:01 cde2 micro:开始使用.slic
3 月 17 日 02:25:01 efg3 micro:开始使用.slic
最佳答案
您可以在 vim
中使用此替换命令:
%s/\v(\d{2}:\d{2}:\d{2}\s+)[a-zA-Z0-9]+/\1hello/g
\v
用于 非常神奇避免按照旧的 BRE 语法进行转义。 \1
是捕获组的反向引用 #1 关于regex - 如何用一些文本替换 VIM 中的捕获组 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46893708/