我有一个文件,其中有######### Utility Functions #######
之类的评论。我正在尝试将其清理干净并使其成为类似# Utility Functions #
的东西,这需要我匹配一串超过一磅的符号并用一个单一的符号替换它。
我试过以下
:%s/#+/#/gc
:%s/"#"+/#/gc
:%s/\#+/#/gc
:%s/(#)+/#/gc
还有更多。据我所知,#具有特殊的意义,可以匹配多个字符,如*但反方向。这意味着我必须以某种方式逃脱它以实现上述目标。任何帮助表示赞赏。
答案 0 :(得分:2)
试试::%s/\v#{2,}/#/g
#{2,} " 2, means at least two
大多数正则表达式都有“多个”的快捷方式:+
所以
:%s/\v#+/#/g
也适用,如果您使用“非常神奇”(\v
),请参阅:h magic
。
答案 1 :(得分:2)
不,#
没有特殊含义,+
使用它只是一个普通的+
。您需要转义+
以使其成为“多个”:
:%s/#\+/#/g
请参阅:help multi
。
答案 2 :(得分:0)
您可以尝试使用引号。
sed 's/"#"//g'