我所需要的只是将 wiki 模板调用拆分为参数部分。在非常基本的场景中,它只是被 |
分割,因此 {{template|unnamed_parameter|param1=value1}}
将被分割为 {{template
>、unnamed_parameter
、param1=value1
和 }}
。
但是当管道字符用于其他目的时,例如维基链接[[link|title]]
等,事情就会变得复杂。
有什么建议如何以最简单的方式完成这项任务吗? :)
更新:很抱歉可能造成误解,但 {{template|unnamed_parameter|param1=value1}}
只是一个示例。有关 wiki 模板的更多信息,您可以查看以下资源:http://www.mediawiki.org/wiki/Help:Templates
最佳答案
请看这个问答:How can I fix this wiki link parsing regular expression?
我的答案(在更新部分)使用 perl regex
进行非常类似的 Wiki 链接解析。
更新:
好吧,这是适合您情况的 Perl 正则表达式:
echo "{{template|unnamed_parameter|param1=value1}}" | \
perl -pe 's#(^|\b)((?![|\[]){{(.+?)\|(.+?)\|(.+?)}}(?![|\]]))($|\b)#{{$3, $4, $5 and }}#g'
Output: {{template, unnamed_parameter, param1=value1 and }}
问:您确定在关闭}}
之前需要这里的和
吗?否则只需编辑上面的正则表达式:
现在根据字符串检查上述解决方案[[link|title]]
echo "[[link|title]]" | \
perl -pe 's#(^|\b)((?![|\[]){{(.+?)\|(.+?)\|(.+?)}}(?![|\]]))($|\b)#{{$3, $4, $5 and }}#g'
Output: [[link|title]] # remains unchanged as per your requirements
关于javascript - 使用 Javascript 解析 wiki 模板调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5460500/