维基媒体如何转换其模型语法?

时间:2011-09-10 11:51:06

标签: c# regex syntax wikipedia

我想知道维基媒体如何将其模型语法({{model|options}})转换为html代码。 我有一个简单模型({{.*?}})的正则表达式,但它对于嵌套模型失败(例如:{{model|options containing a {{submodel|options}}...}}

1 个答案:

答案 0 :(得分:1)

记住,

  

有些人在遇到问题时会想“我知道,我会用   正则表达式。“现在他们有两个问题。 - Jamie Zawinski

那就是说,你可以阅读:Forum tags. What is the best way to implement them?我做了一个嵌套标签的例子,包括“纯”正则表达式和一个“更稳定”的C#解析器,它使用一些正则表达式,但保持堆栈不在正义之手。

您可以使用balancing groups执行此操作。它们不是“基础”正则表达式的一部分(有些人不认为它们是真正的正则表达式),

但是我不会用类似正则表达式的东西编写像维基这样大的东西。正则表达式的问题在于,对它们进行编程是非常困难的,因此它们不会回溯(有一个选项可以做到这一点,但是很难构建一个不需要回溯或只需要有限回溯的正则表达式) ,当他们开始回溯它的结束时:他们可能会停留几分钟,寻找合适的捕获组合。