我知道你不能在Lua中重复匹配组。例如,如果我想匹配两个连续的"45"
,我就不能这样做:
print(string.find("some 4545 text", "(%d%d)+"))
将打印nil
(找不到匹配项)。
但是,由于find(...)
未报告错误(对于无效模式"%"
和"(%d"
错误 已生成),这让我相信模式"(%d%d)+"
是有效模式。
如果"(%d%d)+"
是有效模式,它会匹配什么?如果不是,是否有特殊原因没有产生错误?
答案 0 :(得分:5)
“(%d%d)+”是有效模式。它匹配例如“一些45 + 67文本”或“一些4567+文本”,并在第一种情况下捕获“45”,在第二种情况下捕获“67”。
答案 1 :(得分:1)
要匹配两个连续出现的数字字符串,请使用"(%d+)%1"
。