regex - 使用 VI 编辑器时我的 REGEX 有什么问题?

标签 regex vim

我有一个像这样的文本文档:

<table width="10">
</table>

我使用 VI 编辑器打开该文档。我想将 width="somenumber"的所有实例替换为空。我在 VI 编辑器中发出此命令:

:0,$s/width="[\d]+"//gc

VI 表示未找到模式。我也尝试过这个,但不起作用:

0,$s/width="[0-9]+"//gc

下面这个有效:

:0,$s/width="\d\d"//gc

我的前两个表达式有什么问题?

最佳答案

您的正则表达式中有两个错误!

首先,使用\d,周围不带[]。您可能会将其与 :alpha::digit: 等字符类混合使用。

其次,转义+ 符号。默认情况下你应该转义它。

所以你的正则表达式将是:

:0,$s/width="\d\+"//gc

并且,请在 stackoverflow 上发帖之前阅读帮助:

:h :s

您可能也对此帮助部分感兴趣:

:h magic 

关于regex - 使用 VI 编辑器时我的 REGEX 有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1615996/

相关文章:

regex - 为什么我在 Windows 中运行的 Perl 程序在 Mac 上的 Mountain Lion 中无法运行?

javascript 正则表达式与最后一组不匹配;从字符串中提取时间

linux - 如果在 .vimrc 文件中回显,Vim 暂停

vim - 执行 :nohlsearch on InsertEnter

java - 用于拆分字符串以获取运算符的正则表达式

javascript - 匹配推文中可能的主题标签列表 - Javascript 或 jQuery

python - 使用 "pyfile s:pyscript"时,vim 似乎不会将 "s:pyscript"解释为变量

list - 枚举Vim中的现有文本(从现有文本中编号列表)

c# - 正则表达式在同一输入上返回不同的结果

vim - VIM:破解ctags或调整标签栏以获得更好的PHP支持