【发布时间】:2012-09-07 20:06:17
【问题描述】:
我是 Lua 的新手。
假设我有一个字符串“1234567890”。
我想遍历所有可能的 3 位数字。 (即123,234,345,456....)
for m in string.gmatch("1234567890","%d%d%d") do
print (m)
end
但这给了我输出123,456,789。
我应该使用哪种模式?
其次,一个相关的问题,我如何指定3-digit 号码? "%3d" 似乎不起作用。 "%d%d%d"是唯一的方法吗?
注意:这没有被标记为Regular expression因为 Lua 没有 RegExp。 (至少在本地)
提前致谢:)
更新:正如 Amber 指出的那样,Lua 中没有“重叠”匹配。而且,关于第二个查询,我现在卡在使用 string.rep("%d",n),因为 Lua 不支持固定数量的重复。
【问题讨论】:
-
("%d"):rep(n)是对string.rep的调用的更惯用方式。它之所以有效,是因为string默认情况下是所有字符串值的元表。
标签: lua pattern-matching