如何禁止使用正则表达式重复n次的数字

时间:2011-05-12 17:38:21

标签: regex bean-validation

这是我的@Pattern注释。我想禁止重复9次的数字。我做错了什么?

@Pattern(regexp="(?!.*\\d{9})")

这些将是无效的字符串:

111111111
222222222

这些是有效的:

111111112
222222221
123456789

只有长度为9的字符串才有效,但这不是正则表达式的一部分,因为它将由其他注释控制。

1 个答案:

答案 0 :(得分:4)

在评论后编辑

我认为你的意思是你不希望相同的数字重复9次。要做到这一点,你需要捕获一个数字,并参考它,看它是否重复8次。

@Pattern(regexp="^(?!(\\d)\\1{8})")

如果您只是使用\\d{9},则表示重复任何数字。

另请注意,您不需要.*。正则表达式将决定自己在哪里开始比赛。