我正在尝试使用PHP从字符串中删除背景颜色,为此我想使用正则表达式(在我看来,这是实现该目标的最快方法)。
这就是我所拥有的:
<span style="font-family: Arial, Narrow, sans-serif; background-color: rgb(25, 56, 92); color: rgb(170, 170, 170);">Parabéns! Você recebeu um pouco de sorte! <br></span>
我只想从style属性中删除“background-color:{color value}”。但是,背景可以有不同的颜色,可以是十六进制或RGB()(在这种情况下)。
这是我创建的表达式,不幸的是,它不起作用:
/background-color: ?(\#[a-fA-F0-9]{3,6}|rgb\([0-9]{2,3},[0-9]{2,3},[0-9]{2,3}\))\;/
我尝试搜索网络和stackoverflow,但我找不到这个特定问题的答案。
感谢您的关注。
答案 0 :(得分:1)
使用preg_replace()和正则表达式。
$string = "background-color: #ffffff;";
$expression = "/background-color:(.*?);/";
$string = preg_replace($expression, '', $string);
var_dump($string);
输出:
string '' (length=0)
是的,这将使用rgb(...)值去掉你的字符串。它匹配background-color:和分号之间的任何内容。
然而,认识到对此的限制。它只会取代
background-color: value;
如果HTML代码可能使用背景:#ffffff则会失败。
答案 1 :(得分:0)
$s = '<span style="color: red; background-color: #fff; background-color: rgb(25, 56, 92); font: Arial;">text</span>';
$s = preg_replace('~background-color:.+?;\s*~', '', $s);
echo $s;
<span style="color: red; font: Arial;">text</span>