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

如何用.NET正则仅去除Wikipedia mul模板中的重复值?

解决AutoWikiBrowser中mul模板参数去重问题

方案1:使用C#代码替换(推荐,更可靠)

这种方法直接针对{{mul|...}}模板内容进行参数拆分、去重后重新拼接,避免正则匹配的边界问题:

  1. 在AutoWikiBrowser的替换规则中,选择正则替换,并勾选「使用C#代码」选项
  2. 查找模式:
    \{\{mul\|(.*?)\}\}
    
  3. 替换代码:
    var paramsList = match.Groups[1].Value.Split('|')
        .Select(p => p.Trim())
        .Distinct(StringComparer.OrdinalIgnoreCase); // 如需区分大小写可去掉IgnoreCase
    return $"{{{{mul|{string.Join("|", paramsList)}}}}}";
    
  4. 应用规则后,会自动将{{mul|fr|en|fr}}转换为{{mul|fr|en}},且不会影响其他模板。

方案2:纯正则替换(无需代码)

如果不想使用C#代码,可使用限定范围的正则匹配,仅移除mul模板内的重复参数:

  1. 选择正则替换,不勾选代码选项
  2. 查找模式:
    (?<=\{\{mul\|(?:[^|}]+\|)*)\b(\w+)\s*\|\s*(?=(?:[^|}]+\|)*\1\b[^}]*\}\})
    
  3. 替换为:空字符串(留空即可)
  4. 勾选「重复替换直到没有匹配」,确保多次重复的参数被完全移除。

正则说明

  • (?<=\{\{mul\|(?:[^|}]+\|)*):正向回顾确保当前匹配处于{{mul|开头的模板内部
  • \b(\w+)\s*\|\s*:匹配待移除的重复参数(含后续竖线及空格)
  • (?=(?:[^|}]+\|)*\1\b[^}]*\}\}):正向预查确保该参数在模板结束前已出现过,避免影响模板外内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 03:42:40