我发现另一篇使用以下正则表达式<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>
我不想碰这一个。
答案 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之外,还有其他方法,请使用该方法(字符串操作等)