0

我正在尝试解析一个普通链接,但有时除了该链接之外,还有一个类似的链接,而不是文本包含图像。

我一直在使用这种模式:"#_blank\">(.*?)</a>#is,但这也与锚中包含图像的链接相匹配。

我怎么能只解析那些不包含图像的?

4

2 回答 2

0

<a href=".*?">(?!<img.*?>).*?</a>

http://regexr.com?30n1q

How about this?

于 2012-04-19T22:37:02.567 回答
0

如果您不希望在 a 标签内匹配任何标签,请尝试从页面上的所有 a 标签中获取内部 html:

#<a [^>]+>([^<]+)</a>#si

根据您的评论...

为了避免怪物正则表达式,我可能会做的是使用上面的然后这样做:

$output = strip_tags( $match[1], '<b><i><u>' );

添加其他允许的标签来品尝。这种方法还确保最终字符串中没有讨厌的标签。

于 2012-04-19T22:24:32.303 回答