正则表达式不允许字符串中有 2/3/4 个连续的零

Posted

技术标签:

【中文标题】正则表达式不允许字符串中有 2/3/4 个连续的零【英文标题】:Regular expression to not allow 2/3/4 consecutive zeros in string 【发布时间】:2015-06-30 05:21:09 【问题描述】:

我想验证我的文本字段:不想在我的文本框中允许以下条目:

100123456- 2 个重复零,最大长度为 9

120005689- 3 个重复零最大长度 9

100005689- 4 个重复零最大长度 9

我试过下面的正则表达式:

/^(?!.*(.)\1)(^[1-9][0-9]8$)/

它有效,但它也不允许重复其他数字。 eg: 114564568- 因为 1 是重复的

我只想要 Zeros。如果有连续的零则显示错误。

请帮忙。

提前致谢

【问题讨论】:

【参考方案1】:

您可以使用以下正则表达式来禁止 2 个连续的 0s:

^(?!.*00)([1-9][0-9]8)$

或其他版本:

^(?!.*02)([1-9][0-9]8)$

任何以0 以外的数字开头且没有00 的9 位数字都将通过。实际上,如果我们不允许 2 个连续的零,我们将不会同时允许 3 个和 4 个连续的零。

见demo。

【讨论】:

不客气。您的初始正则表达式比您需要的更复杂,所以我只是将其降级 :) 此外,没有必要在前瞻之后重复 ^ 锚,因为我们仍处于字符串的开头时间。

以上是关于正则表达式不允许字符串中有 2/3/4 个连续的零的主要内容,如果未能解决你的问题,请参考以下文章

Android/Java 正则表达式从子字符串中删除多余的零

字符串中找出连续最长的数字串(正则表达式)

sql正则匹配连续增加数字

可以告诉我给定语言的正则表达式吗?

mysql支不支持正则表达式里的零宽断言

Shell常用正则表达式