匹配 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
匹配允许的模式之一。
我正在尝试匹配一个长度为 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
匹配允许的模式之一。