lua中使用标点符号分配变量

我正在尝试为基于Lua运行的Ptokax设计的DC++中心编写脚本, 我试图分配带有标点符号的昵称(一个变量),但它会给出空值 (sPattern已在脚本中分配)

sData = "[11:03:30] !spm sTo_Nick sFromNick message to be sent"

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

我希望分配的是

cmd = spm sToNick1 = sTo , sToNick2 = Nick , sFromNick = sFromNick , sMessage = message to be sent

我得到的是 spm sTo _ Nick

如在此处所示https://repl.it/BrAg/3

有人能建议修改或帮帮忙吗?

点赞
用户3832970
用户3832970

你需要重新排列捕获组:

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

参见 更新的演示

2016-02-28 07:33:40