PCRE заменяет стиль разметки - PullRequest
1 голос
/ 24 июня 2010

Мне нужно выражение PCRE (регулярное выражение) для сопоставления и замены определенного атрибута и значения, относящегося к элементу разметки, что-то вроде этого:

<div style="width:200px;"></div>

в

<div style="width:100px;"></div>

То, что у меня сейчас есть, проанализировано simplehtmldom - это содержимое стиля в виде простого текста, например:

width:200px;

Как мне сопоставить атрибут CSS и заменить его новыми значениями в PHP?

Ура!

Ответы [ 2 ]

2 голосов
/ 25 июня 2010
([^\s:]+)[\s:]+([^:;]+)

извлечет значения вокруг двоеточия в обратные ссылки 1 и 2.

([^\s:]+)[\s:]+(\d+)(\w+)

сделает то же самое, но извлечет значение (200) и единицу измерения (px) отдельно.

if (preg_match('/([^\s:]+)[\s:]+(\d+)(\w+/', $subject, $regs)) {
    $attribute = $regs[1];
    $value = $regs[2];
    $unit = $regs[3];
} else {
    // no match
}
0 голосов
/ 24 июня 2010
preg_replace('~width:200px~', 'width:100px', $subject);
...