我需要找到 6 对十六进制数(不带 0x)的模式,例如。 “00 5a 4f 23 aa 89”
这个模式对我有用,但问题是是否有任何方法可以简化它?
[%da-f][%da-f]%s[%da-f][%da-f]%s[%da-f][%da-f]%s[% da-f][%da-f]%s[%da-f][%da-f]%s[%da-f][%da-f]
最佳答案
Lua patterns do not support limiting quantifiers以及正则表达式支持的更多功能(因此,Lua 模式甚至不是正则表达式)。
您可以动态构建模式,因为您知道需要重复模式的一部分的次数:
local text = '00 5a 4f 23 aa 89'
local answer = text:match('[%da-f][%da-f]'..('%s[%da-f][%da-f]'):rep(5) )
print (answer)
-- => 00 5a 4f 23 aa 89
参见 Lua demo .
'[%da-f][%da-f]'..('%s[%da-f][%da-f]'):rep(5)
可以使用 %x
十六进制字符速记进一步缩短:
'%x%x'..('%s%x%x'):rep(5)
关于lua - Lua中的重复正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70242040/