0

我正在尝试使用 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>

我只是想从样式属性中删除“背景颜色:{颜色值}”。但是,背景可以有不同的颜色,它可以是十六进制或 RGB()(在这种情况下)。

这是我创建的表达式,不幸的是,它不起作用:

 /background-color: ?(\#[a-fA-F0-9]{3,6}|rgb\([0-9]{2,3},[0-9]{2,3},[0-9]{2,3}\))\;/

我试图在网上和 stackoverflow 中搜索,但我找不到这个特定问题的答案。

感谢您的关注。

4

2 回答 2

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,它将失败。

于 2013-09-11T19:51:06.580 回答
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>
于 2013-09-11T19:51:56.840 回答