2010-01-26 108 views
2

我想用任意數量的參數解析字符串,如P1 + 05或P2-01,所有這些參數放在一起就像P1 + 05P2-02一樣。我可以從相當大的字符串中獲取數據(太多以至於不會發布......)IF樹和一個變量,用於跟蹤字符串中的位置。當到達一個關鍵字母(如P)時,它知道要讀取多少個字符並據此進行,沒有什麼特別的。在這個例子中,我說在一場比賽中我有兩名球員,我想分別給球員1和2分別提供+05和-01的生命值。 (因此+ - ,我希望他們有點可讀)。提取字符串中的信息

它的作品,但我覺得這可以做得更好。我使用Lua來解析字符串,所以也許在Lua中有一些內置函數來緩解這個過程?或者,也許一些一般的提示,或參考更好的方法?

回答

4

下面是一些代碼:

for w in string.gmatch("P1+05P2-02","%u[^%u]+") do 
    print(w) 
end 

它假定每個「單詞」以大寫字母開始,其參數不包含大寫字母。

+0

哇,我想添加字母,但沒有這個的人是一個非常優雅的解決方案...絕對比我的方法更簡單,甚至更好,更清潔! – Blastamastah 2010-01-26 19:39:18

+0

如果您將字母添加到參數中,只需添加*小寫*字母。 – lhf 2010-01-28 15:45:25