【发布时间】:2021-10-01 22:28:37
【问题描述】:
我有一个页面,我正在尝试使用正则表达式修复大量指向它的链接。
例如。有些东西已经被替换了,它们就像href="/websites/site.." 一样在那里,所以我要一个人离开。但是,有些被从绝对替换为相对,但是我得到的脚本认为我正在更改的文件位于它们所在的 web 根目录中。所以当我得到像 href="/file" 这样的匹配时,我想匹配。随便。这是我正在使用的正则表达式
%s#\v(href\="/)&((href\="/websites)@!|(href\="//)@!)#href="/websites/site/#g
但是,它会像这样改变一组条目
<a href="/websites/site/websites/site/dog.html">
<a href="/websites/site//">
<a href="doghouse.html">
<a href="/websites/site/doghouse.html">
到这里
<a href="/websites/site/href="/websites/site/websites/site/dog.html">
<a href="/websites/site/href="/websites/site//">
<a href="doghouse.html">
<a href="/websites/site/href="/websites/site/doghouse.html">
任何有关获得此搜索/替换 vim 正则表达式的帮助将不胜感激。
谢谢
【问题讨论】:
标签: vim regexp-replace