我只需要允许0-25个字符长度的字母数字字符(带大写字母),并且不需要全部重复的数字值。Tricky正则表达式
我已经得到了第一部分:Regex.IsMatch(tmpResult, “^ [0-9A-Z] {0,25} $”); (这很容易)
111112 - 比赛
AABD333434 - 比赛
55555555 - 敌不过
555 - 不匹配
任何人都可以请帮我这个?
我只需要允许0-25个字符长度的字母数字字符(带大写字母),并且不需要全部重复的数字值。Tricky正则表达式
我已经得到了第一部分:Regex.IsMatch(tmpResult, “^ [0-9A-Z] {0,25} $”); (这很容易)
111112 - 比赛
AABD333434 - 比赛
55555555 - 敌不过
555 - 不匹配
任何人都可以请帮我这个?
^(?!(.)\1*$)[0-9A-Z]{0,25}$
额外(?!(.)\1*$)
将拒绝由重复相同字符的任何字符串。
的(?!…)
是负先行将导致如果…
匹配主正则表达式失败,并且(.)\1*
将匹配重复字符的字符串。
使用正常的方法你可以只做到这一点...一旦你有你第表情有匹配,只需使用一个子程序通过每个字符迭代并返回true你第一次遇到不同于第一字符在字符串中。
在检查大部分字符串的前2个字符后,应该返回true,除非它是无效字符串。
这应该是同样快的正则表达式如果不是更快,如果它被很好的实施。
完美的作品,谢谢Kenny。 – 2010-10-28 18:09:33