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

如何移除wikitext中的wiki标签方括号标记保留正文内容

移除WikiText中特定wiki标记的实现方法

需求为清理WikiText中格式为[wiki=哈希ID]正文内容[/wiki]的专属标记,仅保留标签包裹的有效正文。

示例

  • 原始标记文本
Mexico, officially the United Mexican States, is a [wiki=1c1ff8db21cf79377f9930e6e6ff8247]country[/wiki] in the southern portion of [wiki=5ffec2d87ab548202f8b549af380913a]North America[/wiki].
  • 期望处理后文本
Mexico, officially the United Mexican States, is a country in the southern portion of North America.

原有方案问题

之前使用的正则preg_replace('/(\[.*?.\])/', '', $txt)无法实现需求,核心问题有两点:

  • 匹配逻辑仅定位方括号内容直接删除,会把标签包裹的有效正文一并误删
  • 匹配规则没有限定标签范围,容易出现跨标签越界匹配的问题,也未处理[/wiki]闭合标签

可行实现方案

使用PHP正则捕获替换即可完成需求,代码如下:

// $txt为待处理的原始wikitext内容
$cleanText = preg_replace('/\[wiki=[^\]]+\](.*?)\[\/wiki\]/', '$1', $txt);

正则规则说明

  • \[wiki=[^\]]+\]:精准匹配开头的[wiki=ID]起始标签,[^\]]+表示匹配除右方括号外的所有字符,避免匹配范围越界
  • (.*?):非贪婪模式匹配起始标签和闭合标签之间的正文内容,作为第一个捕获组保留
  • \[\/wiki\]:匹配[/wiki]闭合标签
  • 替换值使用$1,即仅保留捕获到的正文内容,自动剔除前后的wiki标记

内容的提问来源于stack exchange,提问作者XTRUST.ORG

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 18:45:42