如何使用函数preg_match_all使用正则表达式来获取字符串

时间:2011-11-25 18:32:12

标签: php regex preg-match-all

我可以使用什么正则表达式代码来查找html标记,然后从中提取字符串?

<?php 

$html = "<span class="equipped">360</span>"
$match = preg_match("???", $html, $matches);

?>

2 个答案:

答案 0 :(得分:0)

你永远不应该用正则表达式解析HTML ...你会发现很多解释here为什么你不应该这样做。

您可以查看this上一篇SO帖子,讨论各种框架,这些框架允许您通过PHP处理HTML,例如phpQueryQueryPath

答案 1 :(得分:-1)

正如npinti指出的那样,你不应该使用正则表达式来解析非常规语言。相反,您可以使用PHP的DOMDocument来查找所需节点的文本。以下是捕获<span>元素内部文本的示例,以及演示如何工作的示例。

$html = "<span>Text</span>";
$doc = new DOMDocument();
$doc->loadHTML( $html);

$elements = $doc->getElementsByTagName("span");
foreach( $elements as $el)
{
    echo $el->nodeValue . "\n";
}

Demo

编辑:我的示例显示使用半完整的HTML文档,但DOMDocument也会成功解析HTML {1}}等HTML字符串,请参阅here