我正在尝试使用Python正则表达式替换将wikitext更改为普通文本.关于wiki链接有两种格式规则.
[[页面名称| 要显示的文字]]
(http://en.wikipedia.org/wiki/Wikipedia:Cheatsheet)
这是一些让我头疼的文字.
CD几乎完全由[[披头士乐队]]的[[封面版]]歌曲组成,这些歌曲最初是乔治·马丁[[唱片制作人]制作的].
上述文字应改为:
该CD几乎完全由乔治·马丁最初制作的披头士歌曲的封面版本组成.
[[]]和[[|]之间的冲突 ]]语法是我的主要问题.我不需要一个复杂的正则表达式.按顺序应用多个(可能是两个)正则表达式替换是可以的.
请赐教我这个问题.
wikilink_rx = re.compile(r'\[\[(?:[^|\]]*\|)?([^\]]+)\]\]')
return wikilink_rx.sub(r'\1', the_string)
Run Code Online (Sandbox Code Playgroud)
注意:您还可以在http://www.mediawiki.org/wiki/Alternative_parsers中找到一些MediaWiki解析器.