You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用preg_replace移除含嵌套div的ads-wrapper区块?(适配WP All Import)

移除WP All Import中class为ads-wrapper的div内容方案

你的正则没生效主要是三个问题:引号嵌套错误、未处理跨行内容、匹配逻辑没考虑嵌套结构。以下是修正后的解决方案:

基础可用版本

直接在WP All Import字段中使用这个短码:

[preg_replace("/<div class=\"ads-wrapper\">(.*?)<\/div>/s", "", {title_article[1]})]

修正说明

  1. 引号转义:把class="ads-wrapper"里的双引号转成\",避免短码内部的引号冲突导致语法错误
  2. 跨行匹配:末尾的s修饰符让正则里的.能匹配换行符,适配HTML里的换行结构
  3. 非贪婪匹配:.*?确保匹配到对应最外层的</div>,而不是中途的嵌套div闭合标签

更严谨的适配版本

如果目标div可能附带其他属性(比如class="ads-wrapper dark-mode"),用这个正则覆盖更多场景:

[preg_replace("/<div[^>]+class=\"ads-wrapper\"[^>]*>(.*?)<\/div>/s", "", {title_article[1]})]

逻辑解释

  • <div[^>]+class=\"ads-wrapper\"[^>]*>:匹配所有包含ads-wrapper类的div标签,不管前后有没有其他属性
  • (.*?)<\/div>:非贪婪匹配从开标签到对应闭标签的所有内容,确保完全移除整个广告容器

把上述短码替换你原来的代码,导入时就能自动清除目标div及其内部所有嵌套内容。

内容的提问来源于stack exchange,提问作者Jonny Quinn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 23:01:35