Gua的Lua模式

时间:2014-04-11 13:27:43

标签: regex lua guid lua-patterns

我正在尝试在Lua中实现一个模式,但没有成功

我需要的模式就像正则表达式:[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}

用于验证guid

我无法找到在Lua中找到工具正则表达式的正确方法,也无法在文档中找到。

请帮我为guid实现上面的正则表达式。

1 个答案:

答案 0 :(得分:8)

您可以使用:

local pattern = "%x%x%x%x%x%x%x%x%-%x%x%x%x%-%x%x%x%x%-%x%x%x%x%-%x%x%x%x%x%x%x%x%x%x%x%x"
local guid = "3F2504E0-4F89-41D3-9A0C-0305E82C3301"
print(guid:match(pattern))

请注意:

  1. Lua模式不支持修饰符{8}
  2. -需要使用%-进行转义。
  3. 字符类%x相当于[0-9a-fA-F]

  4. 使用辅助表构建模式的明确方法,由@ hjpotter92提供:

    local x = "%x"
    local t = { x:rep(8), x:rep(4), x:rep(4), x:rep(4), x:rep(12) }
    local pattern = table.concat(t, '%-')