首页 > 解决方案 > Regex(Dataannotation) 用于字符串中不重复超过五次的数字

问题描述

我只是期待创建一个没有连续数字重复超过五次的正则表达式,并且它应该只从 6、7、8、9 位开始。

我有解决方案,但我使用低于 2 的正则表达式并进行验证。

string startPattern = "^[6-9][0-9]{9}$";
string endPattern = "([\\d])\\1{5}";

请帮忙,以便我可以在模型中用作数据注释。

标签: c#regexmodeldata-annotations

解决方案


您可以使用

^(?!.*(\d)\1{5})[6-9]\d{9}$

查看正则表达式演示

细节

  • ^- 字符串的开始
  • (?!.*(\d)\1{5})- 如果在除换行符之外的任何 0+ 字符之后有相同的 6 位数字,则匹配失败的负前瞻
  • [6-9]-6数字9然后
  • \d{9}- 九位数
  • $- 和字符串的结尾。

推荐阅读