如何在PHP中使用preg_match获取此文本?

时间:2014-07-13 05:29:05

标签: php html preg-match

我有以下HTML代码

<b>Description: </b>TEXT TO BE GRABBED<br>

我需要使用preg_match函数来获取“要写入的文本”。

我尝试了以下但没有成功:

<?php preg_match('#<b>Description: </b>(.*)<br>#', $content, $match); ?>

有人可以向我解释从HTML中提取文本的正确方法吗?

谢谢。

2 个答案:

答案 0 :(得分:1)

不要使用正则表达式解析HTML。如果您必须这样做,那么您的尝试(在编辑之前的原始问题中)几乎正确,但您在/中有额外的</br> - 那里不是HTML中的一个。你应该:

preg_match('#<b>Description: </b>(.*)<br>#', $content, $match);
// $match[1] contains the text "TEXT TO BE GRABBED"

Obligatory link to explain why parsing HTML with regex is bad, very very bad...

答案 1 :(得分:0)

您在问题中包含的代码效果很好:

<?php
$content = "<b>Description: </b>TEXT TO BE GRABBED<br>";
preg_match('#<b>Description: </b>(.*)<br>#', $content, $match);
print_r($match);

DEMO。当我回复$match[1]时,我得到了值:

  

要标记的文字