2016-02-28 60 views
2

我試圖編寫基於在lua上運行的Ptokax的DC++集線器腳本我試圖分配在兩者之間有標點的nick(一個變量),但它給出了零值 (sPattern的!已經分配腳本)在lua之間分配標點符號的變量

SDATA = 「[11時03分30秒]!SPM發送sTo_Nick sFromNick消息」

cmd,sToNick1,sToNick2,sFromNick ,sMessage = string.match(sData, "%b<>%s["..sPattern.."](%a*)(%s+)(%w*)(%s+)(%w*)(%s+)(%.*)") 

什麼,我想被分配爲

CMD = SPM sToNick1 =申通快遞, sToNick2 =尼克, sFromNick = sFromNick, sMessage =發送消息

什麼,我得到的是 SPM STO _尼克

可以看到這裏https://repl.it/BrAg/3

任何人都可以請建議編輯或幫助。

回答

2

您需要重新捕獲組:

cmd,sToNick1,sToNick2,sFromNick,sMessage = 
string.match(sData, "%b<>%s["..sPattern.."](%a*)%s+(%w*)"..pattern.."(%w*)%s+(%w*)%s+(.*)") 

updated demo

+0

注意的Lua不支持正則表達式,這些被稱爲Lua的模式。 –

+1

感謝工作完美,因爲我希望它工作! – warl0ck