在 lua 中分配带有标点符号的变量

Assign variable with punctuation in between it in lua

我正在尝试为 lua 上基于 Ptokax 运行 的 DC++ 集线器编写脚本 我正在尝试分配中间有标点符号的昵称(变量),但它给出了 nil 值 (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 _ 尼克

在这里可以看到https://repl.it/BrAg/3

任何人都可以提出修改建议或帮助。

您需要重新排列捕获组:

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

updated demo