2010-09-16 122 views
0

我如何创建一个preg_match_all正则表达式模式为PHP给我这个代码?PHP preg_match_all html

<td class="class2">&nbsp;</td> 
<td class="class2" align="right"><span class="DarkText">I WANT THIS TEXT</span></td> 

为了让我看看span文本里面的文字吗? 谢谢!

+0

这是文本字符串中唯一的span类吗? – NullUserException 2010-09-16 00:06:42

+2

xpath更适合执行此任务。 – 2010-09-16 00:07:27

+1

请不要使用正则表达式来解析HTML。这是通往悲伤和破碎的代码的途径。 – 2010-09-16 22:15:37

回答

7

您可以使用:

preg_match_all("!<span[^>]+>(.*?)</span>!", $str, $matches); 

那么你的文本将是第一个捕获组内部(rubular可见)

有了这样的方式,注意regex shouldn't be used to parse HTML。使用XML解析器会更好,除非它真的非常简单。

+0

+1回答并指向最佳解决方案(解析器)。并且包括与Bobince着名答案的链接。 – alex 2010-09-16 00:16:58