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

标签 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"
    )

谁有任何指点?

干杯。

最佳答案

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

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

Demo

注意:这将适用于像示例 <img> 这样的简单输入标记,但是对于任何更复杂的东西,Regex 都不足以解析 HTML,因为 HTML 不是一种常规语言。如果您发现它不够强大,您可以使用 DOMDocument ,这是为这类事情准备的。

关于php - 在 PHP 中使用 REGEX 选择样式属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18490626/

相关文章:

php - 在 php 中创建 web 服务是否需要 wsdl 文件?

php - HTML 表单未按预期填充 MySQL 数据库

php - 将数据从 Ajax 传递到 PHP

javascript - 如何将 Latex 转换为 mathml

arrays - 将标题与String中的正文分开,或如何通过2 “\n”进行解析? Kotlin

JavaScript 正则表达式匹配引号内而不是字符集中的字符

css - 如何使用 sed 编辑 css 文件中的字体大小和字体系列选项?

php - 在 WooCommerce 3 中以编程方式设置产品销售价格

正则表达式以匹配主机请求

来自 node.js 的 Mongo 数据库的正则表达式不起作用