Php 使用正则表达式替换html字体标记
我想替换字符串中HTMLPhp 使用正则表达式替换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 和我看到的情况一样,还是我现在不知道了?正则表达式很好,也
-标记的(所有出现)
示例字符串:
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);