CSS エディターを作成していて、CSS ドキュメントからデータを取得できる正規表現を作成しようとしています。この正規表現は、1 つのプロパティがある場合に機能しますが、すべてのプロパティに対して機能させることはできません。PHP で preg/perl 構文を使用しています。
正規表現
(?<selector>[A-Za-z]+[\s]*)[\s]*{[\s]*((?<properties>[A-Za-z0-9-_]+)[\s]*:[\s]*(?<values>[A-Za-z0-9#, ]+);[\s]*)*[\s]*}
テストケース
body { background: #f00; font: 12px Arial; }
期待される結果
Array(
[0] => Array(
[0] => body { background: #f00; font: 12px Arial; }
[selector] => Array(
[0] => body
)
[1] => Array(
[0] => body
)
[2] => font: 12px Arial;
[properties] => Array(
[0] => font
)
[3] => Array(
[0] => font
)
[values] => Array(
[0] => 12px Arial
[1] => background: #f00
)
[4] => Array(
[0] => 12px Arial
[1] => background: #f00
)
)
)
本当の結果
Array(
[0] => Array
(
[0] => body { background: #f00; font: 12px Arial; }
[selector] => body
[1] => body
[2] => font: 12px Arial;
[properties] => font
[3] => font
[values] => 12px Arial
[4] => 12px Arial
)
)
助けてくれてありがとう-これは午後中ずっと私を混乱させていました!