最后一场比赛后新阵容的正则表达式

时间:2016-09-05 08:02:45

标签: regex mediawiki-api

我正在使用一个名为AutoWikiBrowser的程序在维基上进行大量编辑。它基本上是使用正则表达式的搜索和替换。我想替换以下文字:

{{Infobox Book/List/Header|Second bookcase}}
{{:Book title 1|List}}
{{:Book title 2|List}}
{{:Book title 3|List}}

通过以下文字:

{{BookList|type=List/Sorted|caption=Second bookcase
 |Book title 1
 |Book title 2
 |Book title 3
}}

我已成功提出以下正则表达式来替换第一行,找到:

\{\{Infobox Book/List/Header\|(.*?)}}

并替换:

{{BookList|type=List/Sorted|caption=$1

找到下一行中的一个或多个:

\{\{:(.*?)\|List}}

并替换为:

 |$1

但是,在最后一次搜索和替换发生之后,我想在新行上添加这两个结束的大括号。我无法找到实现这一点的方法,因为在正手上我不知道会有多少书名行。有人知道一个明智的伎俩吗?

1 个答案:

答案 0 :(得分:1)

只需添加一个新的正则表达式,将括号中的括号替换为整个书籍列表的东西:

{{BookList\|type=List\/Sorted\|caption=[^\n]+\n( \|[^\n]+\n)+

$0}}

显然,这需要针对可能发生的众多Wiki假阳性进行测试和调整,因为数据在那里很少是一致的。

You can see it here on regex101