Wikitext到HTML的正则表达式

时间:2013-09-07 12:08:51

标签: php regex parsing

我正在尝试在我的应用中使用HTML显示维基文本(使用cakephp)。我将此表达式用于<h4>,<h5>,<h6>

'/^==== (.*) ====$/'
    =>  '<h4>\1</h4>',
    '/^===== (.*) =====$/'
    =>  '<h5>\1</h5>',
    '/^====== (.*) ======$/'
    => '<h6>\1</h6>',

[http://www.wikipedia.org Wikipedia]将显示为<ahref="www.wikipedia.org">Wikipedia </a>

[5|Text]将显示为<a href="http://fillpage/5/page_slug">Text</a>

[[6#HeadingB|Text ]]将显示为<ahref="http://fillpage/6/page_slug#HeadingB>Text</a>

[[6#HeadingB]]将显示为 <a href="http://fillpage/5/page_slug">PageTitle</a>

[media:631|Description|Position]将显示为 <img class="position" src="http://fullpath/lang_code/631.jpg">说明

我不知道如何为链接制作这样的正则表达式(就像维基百科所示。)如何完成它。以及如何匹配空间b / w两个括号链接。

1 个答案:

答案 0 :(得分:1)

匹配\[(.*?) +(.*)\]

并替换为:$ 2

或者如果你在php中使用preg

去吧:

'/\[(.*?) +(.*)]$/'

并在数组中使用反斜杠接受它们:'<a href="\1">\2</a>'作为上述模式的值作为键。

这是维基百科。您可以转到http://gskinner.com/RegExr/并使用右栏中的模式参考。

希望它有所帮助。