【问题标题】:How to count html tags and contents如何计算html标签和内容
【发布时间】:2010-03-17 09:25:20
【问题描述】:

我的正则表达式有问题! 如何用正则表达式计算 html 标签?

【问题讨论】:

  • 你在开玩笑吧?如果不是,不,你不能也不应该。阅读stackoverflow.com/questions/1732348/…
  • 只计算< 的数量 - 这将为您提供与正则表达式相同的精度。
  • 另外,即使您准备好处理使用它的问题,regex 也不会计数。至少您必须使用,例如,perl 将 html 加载到变量中并在“

标签: php html regex tags


【解决方案1】:

不要使用正则表达式使用 DOM。我不确定你会怎么做,但使用 DOM 几乎肯定会更容易: http://php.net/manual/en/book.dom.php

【讨论】:

  • 谢谢。 DomDocument 类很好,可以解决我的问题,但我还有最后一个问题。我有元标记: 我需要名称 - (关键字)和内容 - (一些东西一切)。如何使用 DomDocument 类获取名称和内容?
  • $meta = $dom->getElementsByTagName('meta'); for ($i = 0; $i length; $i++) { echo $meta->item($i)->getAttribute('name')." - ".$meta->item($ i)->getAttribute('content')."
    "; }
【解决方案2】:

你没有!为什么不试试DOMDocument

【讨论】:

    【解决方案3】:

    正则表达式不是为此而设计的。您的问题肯定有更好的解决方案,只需检查其他答案即可。

    如果您只需要一次,作为一种快速而肮脏的 hack,并且不关心边缘情况(例如字符串中使用的转义标签),您可以使用 "<\w+" 来匹配起始标签,并计算匹配。

    但你不应该这样做。 =)

    【讨论】:

      【解决方案4】:
      $data=file_get_contents("file");
      $data=preg_replace("/\n+|[[:blank:]]+/","",$data);
      print "number of tags: ". substr_count($data, '<');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-20
        • 1970-01-01
        相关资源
        最近更新 更多