1

我有一个字符串如下:

<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>

这会抓取子字符串,但如果没有换行符,只会看到一个匹配项而不是两个匹配项。

对于简单的图像,我发现了一个更强大的正则表达式,即使没有换行符也能找到两个图像:

<[^<]+? \/>

我似乎无法弄清楚如何调整这个正则表达式来包含链接标签。有什么帮助吗?

4

1 回答 1

0

是的,不匹配的东西的正则表达式有点棘手,试试这个:

preg_match_all(',<a(([^<]|<[^/]|</[^a]|</a[^>])+)</a>,', $a, $matches);
print_r($matches[0]);
于 2013-06-25T08:16:33.350 回答