0

以下是搜索字符串中可能出现的三种模式:

<a href=".+?" target="_blank" id="">.+?</a>
<a href=".+?" target="_blank" id=""><font color=green>.+?</font></a>
<a href=".+?" target="_blank" id=""><b><font color=green>.+?</font></b></a>

我写的表达式匹配以上所有内容:

<a href="(.+?)" target="_blank" id="">(<font color=.+?>)?(.+?)(</font>)?</a>

如何编写正则表达式以仅匹配第一个和第二个字符串,结果中应排除第三个字符串。

4

1 回答 1

0

通常,您应该避免使用正则表达式解析 (X)HTML。

在您的情况下,您可以使用类似的表达式来避免匹配包含文本中的标签

<a href="(.+?)" target="_blank" id="">(<font color=.+?>)?([^<]*?)(</font>)?</a>

请注意,这将忽略内容中的所有标签<a>

于 2013-03-07T02:57:54.140 回答