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

.NET正则捕获异常:AutoWikiBrowser语言模板合并故障排查

解决AWB中合并语言标识模板的.NET正则问题

问题说明

需要将最多14个形如{{ab}}(内含2-3个字母)的语言标识模板,合并为单个{{mul|ab|cd|...}}模板。现有正则在模板以空格分隔时正常工作,但无空格连续排列时无法正确捕获末尾模板,且枚举语言代码的写法不通用。

改进后的正则方案

1. 合并模板的查找正则(.NET兼容,AWB可用)

此正则匹配1-14个连续的语言模板,支持模板间有0个或多个空格分隔,自动匹配2-3字母的语言标识:

\{\{ *([a-zA-Z]{2,3}) *\}\}(?: *\{\{ *([a-zA-Z]{2,3}) *\}\})?(?: *\{\{ *([a-zA-Z]{2,3}) *\}\})?(?: *\{\{ *([a-zA-Z]{2,3}) *\}\})?(?: *\{\{ *([a-zA-Z]{2,3}) *\}\})?(?: *\{\{ *([a-zA-Z]{2,3}) *\}\})?(?: *\{\{ *([a-zA-Z]{2,3}) *\}\})?(?: *\{\{ *([a-zA-Z]{2,3}) *\}\})?(?: *\{\{ *([a-zA-Z]{2,3}) *\}\})?(?: *\{\{ *([a-zA-Z]{2,3}) *\}\})?(?: *\{\{ *([a-zA-Z]{2,3}) *\}\})?(?: *\{\{ *([a-zA-Z]{2,3}) *\}\})?(?: *\{\{ *([a-zA-Z]{2,3}) *\}\})?(?: *\{\{ *([a-zA-Z]{2,3}) *\}\})?

2. 替换模式

将匹配到的语言标识拼接为mul模板:

{{mul|$1|$2|$3|$4|$5|$6|$7|$8|$9|$10|$11|$12|$13|$14}}

3. 清理多余管道符的正则

替换后会出现未匹配捕获组导致的空管道符(如{{mul|ab|cd||}}),按以下步骤清理:

  • 第一步:移除末尾空管道符
    • 查找:
      \{\{mul\|(.*?)\|\}\}
      
    • 替换:
      {{mul|$1}}
      
  • 第二步:合并连续管道符
    • 查找:
      \|\|+
      
    • 替换:
      |
      

重复运行清理正则,直到无匹配项为止。

关键改进点

  • 用[a-zA-Z]{2,3}替代枚举的语言代码,适配所有合法的语言标识
  • 每个模板间的分隔符用*(匹配0或多空格),支持有无空格的连续模板
  • 用14个可选的捕获组覆盖最多14个模板的场景,确保每个标识都能被正确捕获

内容的提问来源于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 04:24:56