【问题标题】:What is the preg_replace regex to replace this HTML tag?替换此 HTML 标记的 preg_replace 正则表达式是什么?
【发布时间】:2014-01-25 12:49:36
【问题描述】:

我将如何转换这样的字符串:

<span class="it">CONTENT</span>

进入这个:

{it}CONTENT{/it}

在保持内容完整的同时?

【问题讨论】:

    标签: php regex html-parsing preg-replace


    【解决方案1】:
    preg_replace('/<span class="it">(.*?)<\/span>/', '{it}$1{/it}', $text)
    

    这不是最通用的解决方案,但它适用于您的代码。也有可能将类属性的内容作为变量,但现在并不难弄清楚。

    【讨论】:

    • 直到您拥有 &lt;span class='it'&gt;&lt;span id="foo" class="it"&gt; 或任何数量的其他变体为止。有关使用正则表达式解析 HTML 的危险示例,请参阅 htmlparsing.com/regexes
    • 我很清楚,但这不是问题所要求的。解析 HTML 已经并将永远是一件令人头疼的事情。其他解决方案在语法方面更好,但都将解决线程所述的问题。
    【解决方案2】:

    试试这个

     preg_replace('/<span.+class="(.+)">(.+)<\/span>/', '{$1}$2{/$1}', $text);
    

    【讨论】:

    • 我需要它是&lt;\/span&gt;
    【解决方案3】:

    以下内容应该可以帮助您入门:

    preg_replace('#<span\s*class="(\w*)">(\w*)</span>#i', '{$1}$2{/$1}', $str);
    

    输出:

    {it}CONTENT{/it}
    

    Regex101 Demo

    【讨论】:

      猜你喜欢
      • 2012-04-04
      • 2011-06-28
      • 2011-04-19
      • 2019-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-05
      相关资源
      最近更新 更多