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

标签 regex string lua openwrt luci

这是一个字符串

"'"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 组:一位或多位数字

关于regex - 如何在lua中提取除双引号之外的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47473340/

相关文章:

regex - Notepad++ 正则表达式获取位于两个重复标签之间的每个唯一数字

java - 此模式的正则表达式

Ios 使用正则表达式从字符串中提取数据

python - Python 中的 String.strip()

javascript - 匹配任何不以 .json 结尾的正则表达式

python - 修复无效的 JSON 八进制转义

regex - elisp regexp 在字符串中搜索,而不是在缓冲区中

lua - 如何使大嵌套 'for loops'循环更紧凑?有什么解决办法吗?

javascript - 使用node_redis客户端正确执行Lua脚本

iterator - 为什么Lua的迭代器是三元组?