问题描述
|
我正在尝试找出此规则的正则表达式:
\“必须包含最少3个和最多5个
数字字符。相同的角色可以
最多重复一次5次!另外,长度至少应为10个字符。\“
你有什么想法吗?
我从这个开始:
^\\d{3,5}$
但这确实限制了3个小数接一个,我需要的是也可以将它们插入字母(最少出现3个,最多出现5个)。
你能帮个忙吗?
解决方法
在正则表达式中是可能的,但是反向引用的需求将使其变得非常缓慢。
^(?=(?:\\D*\\d){3,5}\\D*$)(?!.*(.)(?:.*\\1){4}).{10,}
描述:
(?=(?:\\D*\\d){3,5}\\D*$)
:确保3到5个数字
(?!.*(.)(?:.*\\1){4})
:确保同一字符上没有5个副本
.{10,}
:确保匹配的字符串长度至少为10。
一种更简单的方法是使用ѭ5并计算字符。
,所有这些条件(长度除外)都非常不适用于正则表达式。不适合:它将采用指数大小的表达式。请改用普通的编程方法来计算字母,数字和重复次数。 -除非这是正则表达式500的家庭作业,否则使用正则表达式毫无意义。