lua - 如何正确进行 Lua 模式搜索?

标签 lua lua-patterns

我正在尝试进行模式搜索,但它不起作用。我有这段代码:

vars = "CmdTurn.on=off/GetPar.pwd=true"

_GET = {}
for k, v in string.gmatch(vars, "(%w+)(%p+)(%w+)=(%w+)&*") do
  _GET[k] = v
  print(k..":"..v)
end

运行这段代码后我希望看到这样的结果:

CmdTurn.on:off
GetPar.pwd:true

但它不起作用。出现的错误结果是这个:

CmdTurn:.
GetPar:.

谁能帮帮我?

最佳答案

模式(%w+)(%p+)(%w+)=(%w+)&*中有多个捕获组,所以kv 获取前两次捕获的结果,这不是你想要的。

试试这个:

for k, v in string.gmatch(vars, "(%w+%p+%w+)=(%w+&*)") do
  print(k..":"..v)
end

关于lua - 如何正确进行 Lua 模式搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34553323/

相关文章:

sorting - 关联数组排序值

c++ - C++中的Lua匿名函数存储

lua - Lua 中的 gsub。无法更换图案

string - Lua中如何从字符串中取出1个单词

objective-c - 如何为任意数量的Lua对象(表)实现(匿名)Lua回调函数?

lua - LuaJIT的跟踪编译器如何工作?

c++ - 指数导致的总和

string - 如何从 Lua 中的 URL 中提取 YouTube 视频 ID

string - Lua 'plain' string.gsub

string - Lua:将字符串分割成单词,除非引用