使用数据库中的正则表达式或通配符删除 wordpress 中的字符串

Posted

技术标签:

【中文标题】使用数据库中的正则表达式或通配符删除 wordpress 中的字符串【英文标题】:Removing strings in wordpress using regex or wildcards in database 【发布时间】:2020-05-25 09:19:55 【问题描述】:

我有这个字符串应该从我的 wordpress 网站的内容中删除。我也希望它从数据库中删除。通过 phpmyadmin 或通过插件。 插件不接受通配符或正则表达式。 该字符串以 <li class="dZip"> 开头并以 Download ZIP</a></li> 结尾,并且在它们之间包含字母数字和特殊字符。我喜欢删除所有这些。 我用插件试过这个<li class="dZip">\b.*Download ZIP</a></li>\b。没用。

【问题讨论】:

试试这个:SELECT * FROM table WHERE contains_field LIKE "%Download%ZIP " 它不会删除它。它会让您有机会在删除之前查看它是什么。 我已经编辑了这个问题,这两个字符串之间有很多字符。我需要将其删除或替换为任何其他字符串。 【参考方案1】:

如果你有足够新的 mysql 或 MariaDB,可以使用函数REGEXP_REPLACE()

正则表达式是

<li class="dZip">.*?Download ZIP</a></li>

与你所拥有的相比有两个变化......

\b 是“单词边界”。根据定义,&gt; 的任一侧都是单词边界。 所以,我删除了它们。 .* 会一直吞噬到最后一个 &lt;/li&gt;。如果您期待多个 li,则使用 .*? 以便它只吞噬一个。该函数(MySQL 的 REGEXP_REPLACE 或 PHP 的 preg_replace)将重复执行直到完成。

【讨论】:

以上是关于使用数据库中的正则表达式或通配符删除 wordpress 中的字符串的主要内容,如果未能解决你的问题,请参考以下文章

通过正则表达式或通配符一次操作 gsutil 中的多个存储桶

通配符 特殊符号与正则表达式

MySQL中的Like和正则表达

powershell中的正则表达式

软链接与硬链接的区别;描述通配符与正则表达式的区别

正则表达式和通配符简介