我需要一个PCRE表达式(正则表达式)来匹配和替换与标记元素相关的某个属性和值,如下所示:
<div style="width:200px;"></div>
到
<div style="width:100px;"></div>
我现在所拥有的,由simplehtmldom解析的是纯文本的样式内容,如下所示:
width:200px;
如何匹配CSS属性并将其替换为PHP中的新值?
干杯!
答案 0 :(得分:2)
([^\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
}
答案 1 :(得分:-2)
preg_replace('~width:200px~', 'width:100px', $subject);