在HTML代码中匹配属性

这个问题在这里已经有了答案:

  • 如何解析和处理PHP中的HTML / XML? 28个答案

  • 你在角色类中有一个撇号( ' ),但你想要一个引号( " )。

    myAttr="([^"]*)"
    

    也就是说,你真的不应该用正则表达式解析HTML。 (对不起再次链接到这个答案,还有其他的答案,更多的是“如果你知道你在做什么......”的多样性,但是很好意识到这一点)。

    请注意,即使您将regexing限制为仅有的属性,您仍有很多需要考虑:

  • 注意不要在评论内部匹配。
  • 注意不要与CDATA部分内部相匹配。
  • 如果属性用单引号代替双引号括起来会怎么样?
  • 如果属性根本没有引号呢?
  • 这就是为什么通常需要预先构建,认真的解析器的原因。


    *是一个贪婪的量词。 你应该用一个问号跟着它,使它不贪婪:

    myAttr="([^']*?)"
    

    如果您只需要myAttr参数值,请使用以下命令:

    "myAttr="([^"]+)""
    
    链接地址: http://www.djcxy.com/p/29895.html

    上一篇: Match attribute in a HTML code

    下一篇: elements from string, in PHP