【发布时间】:2018-04-24 08:59:48
【问题描述】:
我正在尝试使用正则表达式将模板插入页面,在所有类别或跨维基链接之前,但在其他所有内容之后。 所以如果你有一个这样结束的页面:
== See Also ==
* [[Link one]]
* [[more link]]
* [//external.link external link]
[[Category:Pages]]
[[de:Spezial Page]]
我希望将模板 {{template}} 插入到 [[Category:Pages]] 之前但在其他所有内容之后。
注意:最后一部分不一定是列表 - 它可能是
== References ==
<references/>
甚至是别的东西。重点是将其插入到最后所有类别/跨维基链接之前,但在最后一节之后。
什么正则表达式可以帮助我做到这一点?我尝试将(?P<pre>[\s\S]+)(?P<cats>(?:\[\[[^]]:[^]]\]\])*$) 作为匹配表达式,将\g<pre>{{template}}\n\g<cats> 作为替换表达式,但这只是将它插入到最后。
正则表达式风格:Python 2
【问题讨论】:
-
stackoverflow.com/a/1732454/1394393 使用真正的解析器。
-
@jpmc26 我可以使用任何“真正的解析器”吗?
-
不知道。我从未使用过媒体维基。 (但我确实知道,当您使用的文本处理引擎对于您正在使用的语言来说还不够强大时。)Google 出现了一些看起来很有希望的结果。
标签: regex mediawiki python-2.x