正则表达式匹配具有不同数字和最小长度的数字
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+位
$
- 字符串结束。
【讨论】:
以上是关于正则表达式匹配具有不同数字和最小长度的数字的主要内容,如果未能解决你的问题,请参考以下文章