lua - 在lua中分配变量并在其之间添加标点符号

标签 lua lua-patterns

我正在尝试为基于 Ptokax 的 DC++ hub 编写一个在 lua 上运行的脚本 我正在尝试分配其间有标点符号的缺口(变量),但它给出了 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

关于lua - 在lua中分配变量并在其之间添加标点符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35679539/

相关文章:

c++ - 有条件地从 C++ 调用 Lua 函数

c++ - 我如何从 C/C++ 访问局部变量或调用 lua 脚本中的局部函数?

text - Lua 匹配错误的模式

lua - Lua中如何忽略字符串操作的特殊字符?

lua - 理解这个 Lua 片段

sockets - 运行时 addeventlistener 使用 Corona 减慢 Lua 中的应用程序显示

string - 对于带有负号的数字,正确的模式是什么?

lua - 模式 ^u.meta(\.|$) 未按预期工作

unicode - Lua 模式和 Unicode

arrays - 如何将键值对象插入redis中的lua表