需要有关notepad ++的正则表达式的帮助

时间:2017-05-09 09:50:33

标签: regex notepad++

以下是我的示例文字。

<ul>
<li><a href="www.google.com" target="blank">Google</a></li>
<li><a href="www.yahoo.com" target="blank">Yahoo</a></li>
<li><a href="www.bing.com" target="blank">Bing</a></li>
</ul>

我想在锚标记中添加一个额外的属性,其中包含超链接的值,如下所示。

<ul>
<li><a href="www.google.com" target="blank" aria-label="Google">Google</a></li>
<li><a href="www.yahoo.com" target="blank" aria-label="Yahoo">Yahoo</a></li>
<li><a href="www.bing.com" target="blank" aria-label="Bing">Bing</a></li>
</ul>

我想用notepad ++正则表达式来做这件事。感谢您的帮助 !!

3 个答案:

答案 0 :(得分:2)

您可以使用此正则表达式find / replace:

查找:>([^<>]+)</a>

替换: aria-label="$1"$0

转换行情

在评论中,您要求在两个文本中用重复的单引号替换单引号。这不能在同一个替换操作中完成,但你可以启动一个单独的,应该在之前执行上面的那个:

查找:'(?=[^<>]*</a>)

替换:''

然后在完成此操作后,您可以应用第一个替换操作。

答案 1 :(得分:1)

我将假设您的所有标签都已正确形成(没有丢失的结束标签,没有丢失的支架等等)。然后你可以这样做:

替换:
(<a[^>]*)>([^<]*)(<\/a>)
通过
$1 aria-label="$2">$2$3

演示here

答案 2 :(得分:0)

使用(?<=www\.)(\w+)(\..+\")(?=>)作为查找模板,\1\2 aria-label="\1"作为替换模板。

Screenshot for example

点击全部替换按钮。