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

如何在AutoWikiBrowser中仅对信息框应用.NET正则处理图片标签

仅移除维基信息框内的图片标签(.NET正则实现)

需求场景

需使用AutoWikiBrowser(基于.NET正则语法)处理维基代码,仅移除信息框内部的图片标签格式,保留文件名及扩展名;信息框外的图片标签不做修改。

示例原代码:

{{Infobox xyz
|aaa= Xyz
|bbb= [[Xyz]]
|ccc=[[File:xyz.jpg|thumb|Xyz.]]
|ddd= {{lang|en|xyz}}
}}

[[File:abc.jpg|thumb|Abc.]]

处理后目标效果:

{{Infobox xyz
|aaa= Xyz
|bbb= [[Xyz]]
|ccc=xyz.jpg
|ddd= {{lang|en|xyz}}
}}

[[File:abc.jpg|thumb|Abc.]]

现有问题

  • 单独的图片标签移除正则\[\[ *fi(?:le|chier) *: *([^\|]*)[^\]]*\]\]会匹配所有图片,无法区分信息框内外;
  • 第三方匹配信息框的正则使用了子例程语法,.NET正则不支持该写法,无法直接复用。

解决方案

利用.NET正则的平衡组特性匹配完整信息框,再结合AutoWikiBrowser的内置替换函数,仅在信息框范围内处理图片标签。

具体设置(AutoWikiBrowser正则替换)

  1. 查找正则:
(?s)({{Infobox(?:(?!{{Infobox)[^{}]|(?<Open>{{)|(?<-Open>}}))*?(?<=(?Open>=0))})
  1. 替换内容:
${string:Replace($1, '\[\[ *fi(?:le|chier) *: *([^\|]*)[^\]]*\]\]', '$1')}

原理说明

  • 平衡组匹配信息框:
    • (?s)开启单行模式,让正则可以跨换行匹配完整信息框;
    • (?<Open>{{)和(?<-Open>}})通过计数嵌套的{{和}},确保精准匹配从{{Infobox开头到对应闭合}}的完整模板块,支持信息框内部嵌套其他模板的场景;
  • 内部替换图片标签:
    通过AutoWikiBrowser的string:Replace内置函数,仅在匹配到的信息框内容($1)中,用你原有的图片标签正则替换为捕获到的文件名($1对应文件名部分)。

内容的提问来源于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.04 14:39:57