替换此 HTML 标记的 preg_replace 正则表达式是啥?

Posted

技术标签:

【中文标题】替换此 HTML 标记的 preg_replace 正则表达式是啥?【英文标题】: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>

进入这个:

itCONTENT/it

在保持内容完整的同时?

【问题讨论】:

【参考方案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);

输出:

itCONTENT/it

Regex101 Demo

【讨论】:

以上是关于替换此 HTML 标记的 preg_replace 正则表达式是啥?的主要内容,如果未能解决你的问题,请参考以下文章

php常用正则替换HTML

PHP 删除/替换 - href / anchor / link - 在html / string中 - preg_replace - php - regex - 正则表达式

preg_replace 一次替换多个模式

php preg_replace遇到替换本身有括号的内容怎么办

preg_replace - 替换输出开始处返回的内容

用preg_replace替换字符