在PHP中使用REGEX选择样式属性

时间:2013-08-28 14:22:39

标签: php regex

我希望在php中使用正则表达式来获取 样式属性及其内容。

例如

输入 <img src="test.png" style="float:left;"/>

所需的输出 style="float:left;"


我尝试了什么:

这似乎返回整个图像,我不知道为什么。我吮吸正则表达式。

$img = '<img src="test.png" style="float:left;"/>';
preg_match('/(<[^>]+) style=".*?"/i', $img, $match);

返回:

    [0] => Array
    (
        [0] => <img src="test.png" style="float:left;"
        [1] => <img src="test.png"
    )

有指点的人吗?

干杯。

1 个答案:

答案 0 :(得分:5)

你几乎是正确的,你只需要在括号中包围你想要的部分。您目前正在捕捉错误的部分:

$img = '<img src="test.png" style="float:left;"/>';
preg_match('/<[^>]+ (style=".*?")/i', $img, $match);
$result = $match[1];

Demo

注意:这适用于简单输入,例如示例<img>标记,但对于更复杂的东西,Regex不足以解析HTML,因为HTML不是常规语言。如果你发现它不够强大,你可以使用DOMDocument,这是出于这种情况。