匹配 Lua 中的模式

Matching a pattern in Lua

我正在尝试匹配一个长度为 9 个字符且始终包含数字的字符串。

我要匹配的模式是查看字符串是全 0 还是全 1 或全 2 等等直到全 9。

谁能帮我写这个。我只需要考虑 0s 和 9s 并且我对它们进行了硬编码并且它工作正常。但肯定有更简单的方法来做到这一点。

有人可以帮忙吗?

如果我没理解错的话,你的输入应该是这样的

111111111
222222222

这意味着您可以使用以下正则表达式来匹配它:

^(\d){8}$

查看示例 here。基本上我们只是捕获第一个数字并查看它是否再重复 8 次

试试这个模式:((%d)%2%2%2%2%2%2%2%2)

正如 Etan 在评论中提到的,您还可以使用查询 a table:

allowed={ ["000000000""]=true, ["111111111""]=true, ..., ["999999999"]=true }

如果 allowed[s] 为真,则 s 匹配允许的模式之一。