好吧我有这个多个静态html并且在每个html网址上都附有下划线我想要替换所有带有下划线的网址,这里是破折号的实际代码
1)
<a href="/category/how_to_tell_your_dad_that_you_are_pregnant/index.html">How to tell my dad that i am pregnant</a>
2)
< href="/premarital_sex/index.html">Premarital Sex</a>
应该是
1)
<a href="/category/how-to-tell-your-dad-that-you-are-pregnant/index.html">How to tell my dad that i am pregnant</a>
2)
< href="/premarital-sex/index.html">Premarital Sex</a>
我想替换所有静态HTML上的所有网址我该怎么做?或者甚至可能吗?
我尝试了htaccess但没有运气所以我只需要使用notepad ++或者powergrep,但我不确定如何或从哪里开始:(
先谢谢你们
修改
我想我就在附近:
(href=")*[_](.+?">)
答案 0 :(得分:3)
在\G
运算符的帮助下,您可以轻松解决Notepad ++和Sublime Text中缺少无限宽度lookbehind的问题。
使用
(\bhref="|(?!^)\G)[^"<_]*\K_
并替换为-
。
<强>解释强>
(\bhref="|(?!^)\G)
- 定义匹配的最左边界:应匹配整个单词href="
(\b
是单词边界)或匹配上一次成功结束时的位置匹配(与(?!^)\G
)[^"<_]*
- 匹配"
,<
和_
以外的0 +个字符\K
- 省略我们目前与缓冲区匹配的全文_
- 仅匹配此字符 - 只会替换此字符。答案 1 :(得分:1)
您需要另一个支持可变长度lookbehinds的编辑器。 NP ++没有。
所以,有了智能编辑器,可能是崇高的,你可以这样做:一气呵成:
找到这个:(?<=href="[^"]*)_(?=[^"]*")
并将其替换为:-
。
在记事本++中你可以这样做:
找到这个:(href="[^"]*)_(?=[^"]*")
并将其替换为:\1-
。但是您必须多次单击“全部替换”。即具有最多下划线的网址有10个,那么你必须点击它10次。