Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.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 使用正则表达式替换html字体标记_Php_Html_Regex_Preg Replace - Fatal编程技术网

Php 使用正则表达式替换html字体标记

Php 使用正则表达式替换html字体标记,php,html,regex,preg-replace,Php,Html,Regex,Preg Replace,我想替换字符串中HTML-标记的(所有出现) 示例字符串: Line1<div><font class="blablabla" color="#33FF33">Line2</font></div><div>Line3 我希望这些文字变成: This colorcode 333333 is so cool This colorcode ff3300 is way cooler 和我看到的情况一样,还是我现在不知道了?正则表达式很好,也

我想替换字符串中HTML
-标记的(所有出现)

示例字符串:

Line1<div><font class="blablabla" color="#33FF33">Line2</font></div><div>Line3
我希望这些文字变成:

This colorcode 333333 is so cool
This colorcode ff3300 is way cooler

和我看到的情况一样,还是我现在不知道了?

正则表达式很好,也很方便,但我想问,你是否能用正则表达式抓住每一个案例。字符串中的标记等呢

我编写了一些spidering代码,最后只是逐个元素地解析整个文档。这是我发现的唯一可靠的方法


请参阅:

可能重复的请不要尝试使用regexp解析HTML,否则会出现小马。。。考虑使用PHQuery,如CSS选择器和函数来解析和操作PHP中的HTML。其他的?我只需要替换两件事,或者用可变颜色替换两个示例字符串。
Line1<div>33FF33Line2</font></div><div>Line3
Line1<div>33FF33Line2</font></div><div>FF3300Li</font>ne3
preg_replace('/<font.*color="#([0-9a-fA-F]){6}">/', '{1}', $string)
This colorcode (#333333) is so cool
This colorcode (orange: #ff3300) is way cooler
This colorcode 333333 is so cool
This colorcode ff3300 is way cooler
preg_replace('~<font[^>]*\scolor="#([0-9a-fA-F]{6})"[^>]*>~', '$1', $string);
preg_replace('~\([^)]*#([0-9a-fA-F]{6})[^)]*\)~', '$1', $string);