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

How can i extract values except double quotes in lua

这是一个字符串

"'"id"':001 (it is visualized "id":001)

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

有谁解决了这个问题吗?

您可以使用 "(%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 demo,输出:

id  001
id2 002

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

  • " - 双引号
  • (%w+) - 第 1 组:一个或多个字母数字字符(使用 [%w_]+ 也匹配 _
  • " - 一个 "
  • %s*:%s* - 用 0+ 个空格括起来的冒号
  • (%d+) - 第 2 组:一个或多个数字