正则表达式匹配html元素的属性

时间:2010-07-12 15:52:18

标签: regex

我正在使用正则表达式模式从html元素中提取标记和属性。但是我在匹配属性方面遇到了一些问题:s。只有最后一个属性存储在matches数组中。

以下是代码:

<?php
    $subject = '<font face="arial" size="1" color="red">hello world!</font>';
    $find= '/<(?P<tag>\w+)\s+((?P<attr>\w+)=(?P<value>[^\s""\'>]+|"[^"]*"|\'[^\']*\')\s*)*\/?>/si';

    preg_match_all( $find, $subject, $matches );
?>

有人能帮助我吗?

非常感谢

1 个答案:

答案 0 :(得分:1)

一些要点:

  • 您不应该使用正则表达式来解析HTML。 PHP有许多优秀的HTML解析库。
  • 在匹配中重复捕获的组仅保留最后一次捕获。
    • 一个值得注意的例外是.NET regex

参考

相关问题