Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试解析一个普通链接,但有时除了该链接之外,还有一个类似的链接,而不是文本包含图像。
我一直在使用这种模式:"#_blank\">(.*?)</a>#is,但这也与锚中包含图像的链接相匹配。
"#_blank\">(.*?)</a>#is
我怎么能只解析那些不包含图像的?
<a href=".*?">(?!<img.*?>).*?</a>
http://regexr.com?30n1q
How about this?
如果您不希望在 a 标签内匹配任何标签,请尝试从页面上的所有 a 标签中获取内部 html:
#<a [^>]+>([^<]+)</a>#si
根据您的评论...
为了避免怪物正则表达式,我可能会做的是使用上面的然后这样做:
$output = strip_tags( $match[1], '<b><i><u>' );
添加其他允许的标签来品尝。这种方法还确保最终字符串中没有讨厌的标签。