我正在尝试使用 AutoWikiBrowser 机器人(适用于 .NET 风格)通过正则表达式删除 Wikipedia 模板中的重复值(并且仅在这个模板中)。
我想找到
{{mul|fr|en|fr}}
并将其替换为 {{mul|fr|en}}
\b(\w+)\s*\|\s*(?=.*\1)
有效,但也可能会影响其他不应修改的模板。
我尝试过
\{\{mul\|\b(\w+)\s*\|\s*(?=.*\1)
,但无法正常工作。
注意:维基百科模板封装在双大括号中,其名称后面跟着由管道分隔的参数和值。这里,参数是未命名且不存在的,模板被命名为“mul”,这给出了
{{mul|<foo>|<bar>|<baz>|<...>}}
(?<={{mul\|(?:(?!{{|}}).)*?)\b(\w+)\|(?=(?:(?!{{|}}).)*?\|\b\1\b)
似乎按预期工作。
谢谢@Wiktor Stribiżew。