2013-06-25 93 views
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> 

这抓起串,但没有断行只看到一个匹配,而不是两个。

对于简单的图片我已经找到了一个更强大的正则表达式,用于查找两个图像,即使没有断行:

<[^<]+? \/> 

我似乎无法弄清楚如何去适应这个正则表达式还包括链接标签。任何帮助?

回答

0

呀,正则表达式的东西不匹配是比较麻烦一些,试试:

preg_match_all(',<a(([^<]|<[^/]|</[^a]|</a[^>])+)</a>,', $a, $matches); 
print_r($matches[0]); 
+0

我得到一个警告:preg_match_all():未知的修饰词“]”执行脚本时。它在http://gskinner.com/RegExr/上工作,虽然 – Roland

+0

很奇怪......它适用于我,你是否在尝试与我相同的确切代码或您是否修改了它? – Guillaume

+0

你说得对。我再次复制它,它工作。引入了新的问题,让我猛撞墙壁,但您的答案解决了所述问题。谢谢。 – Roland

相关问题