用php删除背景颜色

时间:2013-09-11 19:47:58

标签: php html regex string

我正在尝试使用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!&nbsp;<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,但我找不到这个特定问题的答案。

感谢您的关注。

2 个答案:

答案 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>