我想知道维基百科是如何将其模型语法({{model|options}})转换为html代码的。我有一个简单模型({{.*?}})的正则表达式,但对于嵌套模型(例如:{{model|options containing a {{submodel|options}}...}})它失败了。
发布于 2011-09-10 20:02:20
记住,
有些人在遇到问题时会想:“我知道,我会使用正则表达式。”现在他们有两个问题。--杰米·扎温斯基
这就是说,你可以读到:Forum tags. What is the best way to implement them?我做了一个嵌套标签的例子,既使用了“纯”正则表达式,也使用了一个“更稳定”的C#解析器,它使用了少量的正则表达式,但避免了堆栈的使用。
你可以用balancing groups做到这一点。它们不是“基本”正则表达式的一部分(有些人认为它们不是真正的正则表达式),
但我不会用正则表达式这样的东西来编写像Wiki这样大的程序。正则表达式的问题是,很难对它们进行编程,使它们不会回溯(有这样做的选项,但很难构建一个不需要回溯或只需要有限数量回溯的正则表达式),当它们开始回溯时,就结束了:它们可能会拖延几分钟来寻找正确的捕获组合。
https://stackoverflow.com/questions/7371490
复制相似问题