改写...
我想知道如何最好地解析函数/条件。所以如果你有类似的东西:[if {a} is {12 or 34}][if {b} not {55}] show +c+ [/if][/if]
这是条件中的条件。看起来我不能只用正则表达式来做到这一点。
原始问题
现在我有一个非常简单的方法来通过 actionscript 解析一些命令。
我正在使用正则表达式来查找标签、命令和操作数...
+key_word+ // any text surrounded by +
[ifempty +val_1+]+val_2+[/ifempty] //simple conditional
[ifisnot={`true,yes`} +ShowTitle+]+val_3+[/ifisnot] // conditional with operands
我当前的算法将开始标签[**]
与第一个结束标签匹配,[/**]
即使它不匹配。这意味着我不能做类似的事情[ifempty +val_2+][ifnotempty +val_2]+val_3+[/ifnotempty]+val_4+[/ifempty]
- 基本上将一个条件放入另一个条件中。
我正在使用一种内联的解析方式,它根据这个正则表达式将字符串拆分为一个字符串数组\[[^\/](?:[^\]])*\](?:[^\]])*\[\/(?:[^\]])*\]
任何人都可以建议一个更强大的算法和更强大的解析约定/标准吗?特别是对于 as3。