0

cssText(セレクターではなく、{}内の部分)をPHPのキー->値ペア配列に関連付けるRegExの助けが必要です

セレクター部分が削除され、たとえば次のようなものがあると仮定します。

color: black;
font-family: \"Courier New\";
background: url(\"test.png\");
color: red;

はい、文字列はエスケープされています。{} 部分を抽出するときに、なんとかそれを行うことができました。

しかし:

background が dataURI であるか、または content prop が次のように設定されている場合:

content:'1.test;2.blabla;';
background: white url('data:image/png;base64,iVBORw0KGgoAA
AANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABl...') no-repeat scroll left top;

私が使用する分割正規表現:

preg_match_all('/([\w-]+)\s*:\s*([^;]*)\s*;?/i', $css, $matches, PREG_SET_ORDER);

失敗します:(

私は正規表現のプロではありません。「;」にブレーキをかけない方法についてアドバイスが必要です。文字列内の \"...\" 内の外観。

それはキャプチャ グループ ([^;]*) にある必要があります。これは、次のことを意味します。それを0回以上繰り返します。

前もって感謝します!

4

4 に答える 4