我应该如何处理这种正则表达式模式?

时间:2013-12-19 19:03:24

标签: php regex

我正在使用以下代码尝试在两个标记之间获取一些html。到目前为止,我有这个:

$pattern = "/<span style='text-decoration:none;color:#fff;font-family: verdana,geneva,sans-serif;font-size:12px'>(.*?)<\/span>/s";

preg_match($pattern, $html, $episodes);

echo '<pre>';
var_dump($episodes);
echo '</pre>';
die();

这是送入$ html变量的样本数据

<span style="text-decoration:none;color:#fff;font-family: verdana,geneva,sans-serif;font-size:12px">

<b><span style='font-size:18px'>The Walking Dead</span></b><br><br><br><br><b>1x01 - <a style='text-decoration:underline;color:#ffffcc;font-family: verdana,geneva,sans-serif;' href='/?12&tv=1'>Days Gone Bye</a></b><br><br>

</span>

我只是想把那块html拿出去。任何想法为什么模式不匹配?

1 个答案:

答案 0 :(得分:2)

使用DOM时,您应该使用DomDocumnet

未经测试的代码段之类的内容应该可以使用

$html = "<span style='text-decoration:none;color:#fff;font-family: verdana,geneva,sans-serif;font-size:12px'>My text is here</span>";
$document = DOMDocument::loadHTML($html);
$span = $document->getElementByTagName('span');
echo $span->item(0)->nodeValue;