具有可变宽度的lookbehind的替代方案

3

我有一些包含很多HTML文件链接的HTML代码,但是这些链接没有任何文件扩展名。

例如,在字符串<a href='variablelengthfilename'>中,我想匹配末尾的',以便我可以使用RegEx搜索(在Notepad++中)来将其替换为.html',类似于以下内容:

`(?<=href='[A-Za-z]*)'` 

但这种方法行不通,因为Notepad++不允许使用可变长度的后顾断言。那么我该怎么做才能达到这个目的呢?谢谢。

2
你不需要使用look-behind,可以使用\bhref='[^']*并替换为$&.html - Wiktor Stribiżew
2个回答

2

既然你在使用Notepad++,以下是一种实现你想要的方式:

查找内容: \bhref='[^']*

替换内容: $&.html

\bhref='[^']*正则表达式匹配整个单词作为href,然后字面匹配='[^']* 匹配除'之外的0个或多个字符。请注意,如果href值在双引号内,则需要用"替换'

enter image description here


0
假设你所有的链接都长成那样,为什么不直接进行简单替换呢?
'>

使用

.html'>

?


抱歉,我本应该说得更清楚一些 - 页面标记中还包含了许多其他的HTML元素以及超链接,所以我不能这样做,否则其他的所有元素也会受到影响。谢谢。 - Dave

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