在Lua中匹配模式

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

我试图匹配的模式是查看字符串是否为全部为0、全部为1、全部为2等,一直到完全为9。

有人可以帮我写这个吗?我只考虑了0和9,我把它们硬编码进去了,但是这样可以正常工作。但肯定有更简单的方法。

有人可以帮忙吗?

点赞
用户1305516
用户1305516

如果我理解你的意思正确,您的输入将会是以下这样的:

111111111
222222222

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

^(\d)\1{8}$

在这里可以看到一个示例:https://regex101.com/r/dY6jI3/2。基本上,我们只是捕获第一个数字并查看它是否重复了8次。

2015-02-18 22:37:06
用户107090
用户107090

尝试使用这个模式:((%d)%2%2%2%2%2%2%2%2)

正如Etan在评论中提到的,你也可以使用查询表格:

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

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

2015-02-19 00:18:28