如何在lua中提取除双引号以外的值

这是一个字符串

"'"id"':001 (它被可视化为"id":001)

我想在lua中只捕获值。 如果没有双引号,我只能提取值。 (使用: gmatch((%a+)%sd:%s(%d+)))

有谁解决了这个问题吗?

点赞
用户3832970
用户3832970

你可以使用 "(%w+)"%s*:%s*(%d+) 模式:

local example = [[ "id":001 "id2":002 ]]
for i,y in example:gmatch([["(%w+)"%s*:%s*(%d+)]]) do
  print(i, y)
end

查看 Lua 演示,输出:

id  001
id2 002

"(%w+)"%s*:%s*(%d+) 模式匹配

  • " - 一个双引号
  • (%w+) - 第一组:一个或多个字母数字字符(使用 [%w_]+ 可以匹配 _
  • " - 一个 "
  • %s*:%s* - 一个带有 0 个或多个空格的冒号
  • (%d+) - 第二组:一个或多个数字
2017-11-24 12:33:46