使用正则表达式重写dokuwiki内部链接

时间:2016-01-15 07:04:40

标签: regex bash perl

我目前正在尝试将几个wiki合并在一起,但为了这样做,我需要解析页面内的链接以使它们与新位置匹配。为此,我计划使用Perl或bash脚本(虽然我倾向于使用Perl但不太确定)并使用正则表达式进行转换以便它们可以匹配新的命名空间。

单独进行转换应该不会太难,无论如何我都会遇到问题,因为http链接和内部链接的语法主要是相同的,所以我不太清楚如何处理它,因此我是寻求帮助。

作为一个具体的例子,请找到以下内容。

我们必须转换的一个例子:

[[deploy_an_application|Tutorial to deploy an application]]

应该成为:

[[admin:deploy_an_application|Tutorial to deploy an application]]

可以由(使用_作为分隔符)执行:

s_(\[\[).*\]\]_\[\[admin\:_g

我们不应该转换的一个例子:

[[http://www.ibm.com|Proud home of WebSphere]]

为了表现我目前正在预见的事情基于:

s_\[\[[^http]......

但我真的不确定这一切,特别是因为我无法真正做到这一点......

所以问题是,如何在不使用http链接的情况下在内部链接上执行此替换?

非常感谢你的帮助。 最好的问候。

1 个答案:

答案 0 :(得分:0)

尝试更改[[http into [^[^或您喜欢的任何字符串, 然后改变[[ into [[admin:, 然后改回[^[^ into [[http