-1

我发现另一个使用以下正则表达式的帖子<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>我不想碰这个。

4

2 回答 2

1

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

分解:

<a\s[^>]*找到打开一个带有空格的标签,后跟一些参数

href\=[\"][^\"]*查找具有“打开然后多个非”关闭的 href 属性

(RTRD)您的关键组

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

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


您的原始 RegExp 将匹配的内容: <a stuffhere!!.,?>RTRDDD</a> <a>RTRD</a>

分解你的正则表达式:

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

(RTRD+)寻找RTRD组但也匹配一个或多个 D

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

于 2019-01-30T11:54:07.500 回答
0

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

在开始标记 ( <a[^>]*>) 内应该是RTRD某处的模式。这可以通过简单地[^>]*替换为[^>]*RTRB[^>]*

  • [^>]*任何不是>(结束标签)的东西
  • RTRB图案RTRB
  • [^>]*再次任何不是>

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

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

于 2019-01-30T12:06:46.840 回答