Notepad ++ html标记/字符串(a href)替换

时间:2019-01-30 11:28:16

标签: regex notepad++

我发现另一篇使用以下正则表达式<a[^>]*>([^<]+)</a>的帖子效果很好,但是我想使用捕获组来定位其中包含以下4个字母的网址RTRD

我使用了<a[^>]*>(RTRD+)</a>,但没有用。

<a href="http:\\something.RTRD.html">TESTER</a>我想删除URL并离开TESTER

<a href="http:\\something.RTRB.html">LEAVE</a>我不想碰这一个。

2 个答案:

答案 0 :(得分:1)

一个可行的方法:<a\s[^>]*href\=[\"][^\"]*(RTRD)[^\"]*[\"][^>]*>([^<]+)<\/a>

分解:

<a\s[^>]*发现打开带有空格并带有一些参数的标签

href\=[\"][^\"]*找到带有“开头,然后是多个非”结尾的href属性

(RTRD)您的密钥组

[^\"]*[\"]查找参数的余数并关闭“

[^>]*>([^<]+)<\/a>原始正则表达式的其余部分


原始RegExp可满足的条件: <a stuffhere!!.,?>RTRDDD</a> <a>RTRD</a>

分解RegExp:

<a[^>]*>寻找具有任何属性的开始标签

(RTRD+)寻找RTRD组,但还要匹配一个或多个D

<a[^>]*>寻找结束标记

答案 1 :(得分:0)

在此处使用<a[^>]*RTRD[^>]*>([^<]+)<\/a>

在开始标签(<a[^>]*>)内应该是某个位置的RTRD模式。这可以通过将[^>]*替换为[^>]*RTRB[^>]*来完成,这很简单

  • [^>]*不是>(结束标记)的所有内容
  • RTRB模式RTRB
  • [^>]*同样不是>

但是请注意:这也匹配<aRTRB>test</a><a id="RTRB">blubb</a>

如果除了在HTML上使用Regex之外,还有其他方法,请使用该方法(字符串操作等)