改寫...多層次的分析算法
我想知道如何以最佳方式解析功能/條件語句。所以如果你有這樣的:[if {a} is {12 or 34}][if {b} not {55}] show +c+ [/if][/if]
這是一個有條件的條件。看起來我不能只用正則表達式。
原來的問題
現在我不得不通過動作解析出一些命令的一個非常簡單的方法。
我使用正則表達式查找使用標籤,命令和操作數...
+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。