我试图找出这条规则正则表达式:这条规则的正则表达式?
“必须包含至少3个和最多5个 数字字符相同的字符可以 重复最多5次而且,长度应!最少10个字符。“
你有没有ideea?
我开始用这样的:
^\d{3,5}$
但这并限制有分钟。 3个小数一个接一个,我需要的是可能让他们插入字母也(最少3和最多5次出现)。
您能帮忙吗?
我试图找出这条规则正则表达式:这条规则的正则表达式?
“必须包含至少3个和最多5个 数字字符相同的字符可以 重复最多5次而且,长度应!最少10个字符。“
你有没有ideea?
我开始用这样的:
^\d{3,5}$
但这并限制有分钟。 3个小数一个接一个,我需要的是可能让他们插入字母也(最少3和最多5次出现)。
您能帮忙吗?
这是可能的正则表达式,但反向引用的需要会使它非常缓慢。
^(?=(?:\D*\d){3,5}\D*$)(?!.*(.)(?:.*\1){4}).{10,}
描述:
(?=(?:\D*\d){3,5}\D*$)
:确保有3至5个标记(?!.*(.)(?:.*\1){4})
:确保有在相同的字符.{10,}
不 5个拷贝:确保匹配的字符串的长度至少为10.更简单的方法是使用Dictionary<char, int>
并对字符进行计数。
所有这些条件(长度除外)都非常不适合正则表达式。不受欢迎的:它将采用指数大小的表达式。使用正常的编程方法来计算字母,数字和重复。 - 除非这是正则表达式500的家庭作业,否则使用正则表达式没有任何意义。
谢谢,我认为从干净的代码角度来看,使用正则表达式更好,但我同意你所说的。 – 2011-05-25 09:07:04
@Cristian:不,一个复杂的正则表达式很脏。 – kennytm 2011-05-25 09:11:57
这功课吗? – Vadiklk 2011-05-25 08:59:44
不,这是工作要求。 – 2011-05-25 09:01:04