vim - 如何在vim中查找和替换#(磅)字符的字符串?

标签 vim sed

我有一个文件,其中有类似 ######### Utility Functions ####### 的评论.我正在尝试清理它并使其成为 # Utility Functions # 之类的东西这需要我匹配一串超过一个英镑的符号并将其替换为单个英镑符号。

我已经尝试了以下

:%s/#+/#/gc
:%s/"#"+/#/gc
:%s/\#+/#/gc
:%s/(#)+/#/gc

还有一堆。据我了解,# 匹配多个字符(如 * 但方向相反)具有特殊意义。这意味着我必须以某种方式逃避它才能实现上述目标。任何帮助表示赞赏。

最佳答案

试试::%s/\v#{2,}/#/g

#{2,} " 2, means at least two

在大多数正则表达式中,“不止一个”都有一个快捷方式:+所以
:%s/\v#+/#/g

也可以,如果你使用“非常神奇”( \v ),见 :h magic .

关于vim - 如何在vim中查找和替换#(磅)字符的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50329910/

相关文章:

vim - Vim 中的挂起运算符

linux - 如果不是通过 DHCP (sed) 获得,则从文本文件设置静态 IP

windows - Cygwin 和 MinGW 上的 Vim

vim - 如何让 vim 的 closetag 插件适用于所有 html 标签?

bash - 从变量中删除前面和包含某个子字符串的所有内容

linux - 如何在 Linux 中处理具有固定宽度列的文件

linux - grep 每行中的一个模式

sed 失败并出现 "unknown option to ` s'"错误

c++ - 在vim中分屏执行C

vim-重新映射>> <<(缩进命令)