【问题标题】:Regex for stripping HTML tags and contents用于剥离 HTML 标签和内容的正则表达式
【发布时间】:2014-07-08 03:27:25
【问题描述】:

我已经搜索和搜索,但由于某种原因我找不到任何解决方案。

这是我目前的文字:

Lorem ipsum <strong>dolor</strong> sit <i>amet</i>.

这就是我想要的:

Lorem ipsum sit.

想使用 HTML 解析器。我只想使用一个简单的正则表达式来删除 HTML 标记及其内部内容。

【问题讨论】:

    标签: php html regex


    【解决方案1】:

    与全局标志一起使用的正则表达式将匹配 html-tags 和 html-tags 中的文本。

    <[\/\!]*?[^<>]*?>[A-Za-z0-9.,;:]*<[\/\!]*?[^<>]*?>
    

    【讨论】:

    • strip_tags 只是展开内容。我也希望内容消失。
    • 您的问题已经在这里得到解答stackoverflow.com/questions/1516085/…
    • 两个答案都使用 HTML 解析器,我不想使用。
    • 用正则表达式为您编辑了答案。
    【解决方案2】:

    虽然@Tommy 的回答对您有用,但regex 对于您想要做的事情来说实在是太复杂了。 你可以这样做:

    $str = "Lorem ipsum <strong>dolor</strong> sit <i>amet</i>.";
    
    $r = preg_replace("/ <\S*>/", "", $str);
    
    echo $r;
    #=> Lorem ipsum sit.
    

    【讨论】:

    • 不错。我刚刚从 strip_tags() 文档的注释中提取了一个正则表达式。这看起来好多了。
    【解决方案3】:
    preg_replace('/(<.*?>)|(&.*?;)/', '', $string)
    

    这个对我来说效果很好。它去除了所有的 HTML 标记和特殊的 HTML 字符。希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2016-05-16
      • 2011-05-22
      • 2018-03-27
      • 1970-01-01
      • 1970-01-01
      • 2015-10-21
      • 1970-01-01
      • 2013-10-17
      • 1970-01-01
      相关资源
      最近更新 更多