0

我正在尝试在 php 中解析一串 HTML 标记属性。可能有3种情况:

attribute="value"  //inside the quotes there can be everything also other escaped quotes
attribute          //without the value
attribute=value    //without quotes so there are only alphanumeric characters

有人可以帮我找到一个正则表达式,它可以在第一个匹配属性名称和第二个匹配属性值(如果存在)中获得?

4

2 回答 2

9

永远不要使用正则表达式来处理 html特别是如果您正在编写一个库并且不知道您的输入会是什么样子。例如,看看simplexml 。

于 2009-09-04T15:58:47.310 回答
2

试一试,看看它是否是您要从标签中提取的内容。

preg_match_all('/( \\w{1,}="\\w{1,}"| \\w{1,}=\\w{1,}| \\w{1,})/i', 
    $content, 
    $result, 
    PREG_PATTERN_ORDER);
$result = $result[0];

正则表达式提取每个属性,排除标签名称,并将结果放入数组中,这样您就可以遍历第一个和第二个属性。

于 2009-09-04T16:09:28.680 回答