3

我希望使用 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"
    )

任何人有任何指针?

干杯。

4

1 回答 1

5

你几乎是正确的,你只需要捕获你想要的部分,用括号括起来。您当前正在捕获错误的部分:

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

演示

注意:这适用于简单的输入,例如示例<img>标签,但对于任何更复杂的输入,Regex 的功能都不足以解析 HTML,因为 HTML 不是常规语言。如果你发现它不够强大,你可以使用DOMDocument,它就是为这类事情设计的。

于 2013-08-28T14:28:47.273 回答