HTML span标记内容和属性preg_match正则表达式

时间:2010-07-22 01:50:55

标签: php regex

有没有人可以解决以下问题;

我正在使用以下字符串:

<span id="tmpl_main_lblWord" class="randomWord">kid</span>

并使用以下preg_match / regex规则;

preg_match("'/(<span id=.* class=.*>)(.*)(<\/span>)/'si", $buffer, $match);

但它以空数组返回任何想法?

2 个答案:

答案 0 :(得分:2)

以下示例使用DOMDocument

$doc = new DOMDocument();
$doc->loadHtml('<span id="tmpl_main_lblWord" class="randomWord">kid</span>');
$el = $doc->getElementById('tmpl_main_lblWord');
echo 'Inner text is: ' . $el->textContent;

答案 1 :(得分:1)

总的来说,我强烈建议不要使用正则表达式尝试从HTML获取值。我会使用HTML解析器。请参阅此问题:Robust and Mature HTML Parser for PHP

如果你坚持......你似乎有两组嵌套引号。我会删除内部单引号。这应该可以解决你的问题。