regex - 如何用一些文本替换 VIM 中的捕获组 2

标签 regex vim vi

我正在使用下面的正则表达式将 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/

    相关文章:

    regex - Emacs Lisp 相当于 JavaScript 的 RegExp#exec

    authentication - Vundle不对github进行身份验证

    colors - VIM 和 iTerm2 的颜色问题

    linux - 如何在Vim中使用help命令查看.text文件?

    java - 如果使用正则表达式连续出现超过 1 个,如何从字符串中删除一个单词

    regex - 如何对未知(但重复)的词进行分组以创建索引?

    java - 替换字符串中 a-z 0-9 和 , 旁边的所有字符

    javascript - 如何在 vim 快捷键 gf 之前添加 .js 或 .c++?

    regex - 理解正则表达式

    monodevelop - 如何在Windows的Monodevelop中启用vi模式