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

时间:2017-11-24 12:28:02

标签: regex string lua openwrt luci

这是一个字符串

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

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

有没有人解决这个问题?

1 个答案:

答案 0 :(得分:2)

您可以使用"(%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组:一个或多个数字