我有一个字符串如下:
<a href="http://www.google.com"><img class="size-medium wp-image-427 alignnone" alt="" src="http://localhost/lucite/wp-content/uploads/Koala-300x225.jpg" width="300" height="225" /></a><a href="http://www.berg.nl"><img class="size-medium wp-image-426 alignnone" alt="" src="http://localhost/lucite/wp-content/uploads/Desert-300x225.jpg" width="300" height="225" /></a>
正如您所看到的,它包含两个带链接的图像。我想从
开始选择两个子串<a
结束于
/a>
所以它包含图像。
我最初的正则表达式是:
<a.+<img.+\/a>
这会抓取子字符串,但没有换行符只会看到一个匹配而不是两个匹配。
对于简单的图像,我发现了一个更强大的正则表达式,即使没有换行符也可以找到两个图像:
<[^<]+? \/>
我似乎无法弄清楚如何调整此正则表达式以包含链接标记。有什么帮助吗?
答案 0 :(得分:0)
是的,正则表达式对于一些不匹配的东西来说有点棘手,试试看:
preg_match_all(',<a(([^<]|<[^/]|</[^a]|</a[^>])+)</a>,', $a, $matches);
print_r($matches[0]);