3

我知道你不能在 Lua 中重复匹配组。例如,如果我想匹配两个连续"45"的 ',我不能这样做:

print(string.find("some 4545 text", "(%d%d)+"))

这将打印nil(未找到匹配项)。

但是,由于find(...)不报告错误(因为产生了无效的模式"%"错误"(%d"),它让我相信该模式有效的。"(%d%d)+"

如果"(%d%d)+"是有效模式,它匹配什么?如果不是,是否有特定原因没有产生错误?

4

2 回答 2

5

"(%d%d)+"一个有效的模式。例如,它匹配“some 45+67 text”或“some 4567+ text”,并在第一种情况下捕获“45”,在第二种情况下捕获“67”。

于 2012-06-19T10:35:33.413 回答
1

要匹配连续两次出现的数字字符串,请使用"(%d+)%1".

于 2012-06-19T10:41:25.237 回答