用于删除特定维基百科模板中重复值的正则表达式

问题描述 投票:0回答:1

我正在尝试使用 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>|<...>}}

regex regex-lookarounds wikipedia
1个回答
0
投票

(?<={{mul\|(?:(?!{{|}}).)*?)\b(\w+)\|(?=(?:(?!{{|}}).)*?\|\b\1\b)
似乎按预期工作。

谢谢@Wiktor Stribiżew。

© www.soinside.com 2019 - 2024. All rights reserved.