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

本文关键字:模型 语法 转换 媒体 何转换 | 更新日期: 2023-09-27 18:08:25

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

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

记住,

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

也就是说,你可以阅读:论坛标签。实现它们的最佳方式是什么?我做了一个嵌套标签的例子,既使用"纯"正则表达式,也使用"更稳定"的c#解析器,该解析器使用少量正则表达式,但使堆栈远离正则表达式。

可以用balancing groups。它们不是"基本"正则表达式的一部分(有些人不认为它们是真正的正则表达式),

但是我不会用像正则表达式这样的东西来编程像Wiki这么大的东西。正则表达式的问题在于,很难对它们进行编程,使它们不回溯(有一个选项可以这样做,但很难构建一个不需要回溯或只需要有限数量的回溯的正则表达式),当它们开始回溯时,它就结束了:它们可能会拖延几分钟来搜索正确的捕获组合。