在vim上使用正则表达式将所有href链接的内容替换为“#”?

3

是否可以使用vim将“http://google.com/”和其他链接替换为“#”?

 <a class="link1" href="http://google.com/">My Link</a>
 <a class="link1" href="http://yahoo.com/">My Link</a>
 <a href="http://stackoverflow.com/">My Link</a>

to

 <a class="link1" href="#">My Link</a>
 <a class="link1" href="#">My Link</a>
 <a href="#">My Link</a>

谢谢

1个回答

5
这个应该处理基本的 http 情况:
:%s/http:\/\/[^\"]*/#/g

但这应该更加灵活 - 总体思路是找到 href=" 的实例,将其保存为一组,然后匹配直到我们遇到另一个 "。 然后我们用我们的组 (\1) 和井号来替换它:

:%s/\(href=\"\)[^\"]*/\1#/g

新手跟进问题...我如何输入命令?我在Mac Vim上。 - user1530249
@user1530249 在普通的Vim中,你按下:(我会将其添加到答案中,以便更明显)。这将使您进入命令模式,之后您将输入该命令。 - RocketDonkey
你应该找一个基本的 vim 教程并学习它。为了回答你的问题,在 vim 中按下 : 键可以打开命令行。 - steveha
2
同意@steveha的观点 - Vim非常强大,但一开始可能有点令人不知所措。找一个好的教程(甚至尝试在命令提示符下键入vimtutor)你就会希望所有东西都有Vim界面 :) - RocketDonkey
太棒了,谢谢,回答很好。我会通过教程学习更多关于正则表达式的知识。谢谢。 - user1530249
@user1530249 没问题,祝你一切顺利。 Vim非常有趣,所以你有美好的时光等着你 :) - RocketDonkey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接