带有wiki文本的Python正则表达式

red*_*ism 3 python regex wiki

我正在尝试使用Python正则表达式替换将wikitext更改为普通文本.关于wiki链接有两种格式规则.

  • [[页面名称]]
  • [[页面名称| 要显示的文字]]

    (http://en.wikipedia.org/wiki/Wikipedia:Cheatsheet)

这是一些让我头疼的文字.

CD几乎完全由[[披头士乐队]]的[[封面版]]歌曲组成,这些歌曲最初是乔治·马丁[[唱片制作人]制作的].

上述文字应改为:

该CD几乎完全由乔治·马丁最初制作的披头士歌曲的封面版本组成.

[[]]和[[|]之间的冲突 ]]语法是我的主要问题.我不需要一个复杂的正则表达式.按顺序应用多个(可能是两个)正则表达式替换是可以的.

请赐教我这个问题.

ken*_*ytm 7

wikilink_rx = re.compile(r'\[\[(?:[^|\]]*\|)?([^\]]+)\]\]')
return wikilink_rx.sub(r'\1', the_string)
Run Code Online (Sandbox Code Playgroud)

示例:http://ideone.com/7oxuz

注意:您还可以在http://www.mediawiki.org/wiki/Alternative_parsers中找到一些MediaWiki解析器.