我发现另一个使用以下正则表达式的帖子<a[^>]*>([^<]+)</a>
效果很好,但是我想使用捕获组来定位其中包含以下 4 个字母的 URL RTRD
。
我用过<a[^>]*>(RTRD+)</a>
,但没有用。
<a href="http:\\something.RTRD.html">TESTER</a>
我想删除 URL 并离开 TESTER
<a href="http:\\something.RTRB.html">LEAVE</a>
我不想碰这个。
一种可行的方法:<a\s[^>]*href\=[\"][^\"]*(RTRD)[^\"]*[\"][^>]*>([^<]+)<\/a>
分解:
<a\s[^>]*
找到打开一个带有空格的标签,后跟一些参数
href\=[\"][^\"]*
查找具有“打开然后多个非”关闭的 href 属性
(RTRD)
您的关键组
[^\"]*[\"]
查找参数的其余部分并关闭“
[^>]*>([^<]+)<\/a>
原始正则表达式的其余部分
您的原始 RegExp 将匹配的内容:
<a stuffhere!!.,?>RTRDDD</a>
<a>RTRD</a>
分解你的正则表达式:
<a[^>]*>
寻找具有任何属性的开始标签
(RTRD+)
寻找RTRD
组但也匹配一个或多个 D
<a[^>]*>
寻找结束标签
在这里使用<a[^>]*RTRD[^>]*>([^<]+)<\/a>
。
在开始标记 ( <a[^>]*>
) 内应该是RTRD
某处的模式。这可以通过简单地[^>]*
替换为[^>]*RTRB[^>]*
[^>]*
任何不是>
(结束标签)的东西RTRB
图案RTRB
[^>]*
再次任何不是>
但请注意:这也匹配<aRTRB>test</a>
或<a id="RTRB">blubb</a>
如果除了在 HTML 上使用 Regex 之外还有其他方法,请使用该方法(字符串操作等)