正则表达式匹配具有不同数字和最小长度的数字

Posted

技术标签:

【中文标题】正则表达式匹配具有不同数字和最小长度的数字【英文标题】:Regex to match number with different digits and minimum length 【发布时间】:2018-05-04 07:30:09 【问题描述】:

我正在尝试编写一个正则表达式(用于验证 ac# .NET Core 模型上的属性,该模型会生成 javascript 表达式)以匹配由至少两个不同数字组成且最小长度为 6 位的所有数字。

例如:

222222 - 无效

122222 - 有效

1111125 - 有效

我正在尝试以下表达式:(\d)+((?!\1)(\d)),如果有不同的数字,它匹配序列但是我如何将整个模式的大小限制为6,

非常感谢

【问题讨论】:

你有时间检查我的答案吗?请检查它是否按您预期的方式工作。 【参考方案1】:

你可以使用

^(?=\d6)(\d)\1*(?!\1)\d+$

见regex demo

详情

^ - 字符串开头 (?=\d6) - 至少 6 位数字 (\d) - 任何数字都被捕获到第 1 组 \1* - 在第 1 组中捕获的值出现零次或多次 (?!\1) - 下一个数字不能与第 1 组中的相同 \d+ - 1+位 $ - 字符串结束。

【讨论】:

以上是关于正则表达式匹配具有不同数字和最小长度的数字的主要内容,如果未能解决你的问题,请参考以下文章

具有至少 1 个数字和 1 个字符且固定长度为 11 的字母数字字符串的正则表达式

java 正则表达式 如何匹配固定长度的数字

正则表达式匹配 4 个组中的 2 个

.NET中具有重复字符和长度的正则表达式

正则表达式找到一对相邻的数字,它们周围有不同的数字

转正则表达式 匹配中文,英文字母和数字及_的写法!同时控制长度