Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中使用preg_match获取此文本?_Php_Html_Preg Match - Fatal编程技术网

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

如何在PHP中使用preg_match获取此文本?,php,html,preg-match,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中提取文本的正

我有以下HTML代码

<b>Description: </b>TEXT TO BE GRABBED<br>
说明:要抓取的文本
我需要使用preg_match函数来抓取“要抓取的文本”

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

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

有人能给我解释一下从HTML中提取文本的正确方法吗


谢谢。

不要用正则表达式解析HTML。如果必须这样做,那么您的尝试(在编辑之前的原始问题中)几乎是正确的,但是您在

中有一个额外的
/
——HTML中没有。你应该:

preg_match('#<b>Description: </b>(.*)<br>#', $content, $match);
// $match[1] contains the text "TEXT TO BE GRABBED"
preg#u match('#说明:(.*)
#',$content,$match); //$match[1]包含文本“要抓取的文本”

问题中包含的代码运行良好:

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

RegEx不是从HTML获取内容的最佳实践。很抱歉,这是一个输入错误。我已经更正了帖子。如果这是一个打字错误,那有什么问题?只需参考
$match[1]