0

PHP を使用して文字列から background-color を削除しようとしています。そのために、正規表現を使用したいと考えています (私の意見では、それを実現するための最速の方法です)。

ここに私が持っているものがあります:

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

スタイル属性から「background-color: {color value}」を削除したいだけです。ただし、背景は異なる色にすることができ、16 進数または RGB() のいずれかになります (この場合)。

残念ながら、私が作成した式は次のとおりです。

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

Web と 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 コードが background: #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 に答える