RegEx不超过2个相同的连续字符和aZ和0-9

Tac*_*ine 14 regex

编辑

感谢您的建议,使我的问题更清楚:)

比赛正在寻找3个连续的角色:正则表达比赛= AaA 653219正则表匹配= AA 555 6219

代码是Asp.Net 4.0.这是整个功能:

public ValidationResult ApplyValidationRules()
            {
                ValidationResult result = new ValidationResult();
                Regex regEx = new Regex(@"^(?=.*\d)(?=.*[a-zA-Z]).{8,20}$");

                bool valid = regEx.IsMatch(_Password);
                if (!valid)
                    result.Errors.Add("Passwords must be 8-20 characters in length, contain at least one alpha character and one numeric character");
                return result;

            }



_______________________________________
Run Code Online (Sandbox Code Playgroud)

我已经尝试了超过3个小时来完成这项工作,参考下面没有运气= /

如何在Java中使用正则表达式查找重复的字符?

.net Regex连续两封以上的信件

我已经开始使用8-20个字符了a-Z 0-9:

^(?=.*\d)(?=.*[a-zA-Z]).{8,20}$
Run Code Online (Sandbox Code Playgroud)
As Regex regEx = new Regex(@"^(?=.*\d)(?=.*[a-zA-Z]).{8,20}$");
Run Code Online (Sandbox Code Playgroud)

我尝试过添加下面的变种而没有运气:

/(.)\1{9,}/
.*([0-9A-Za-z])\\1+.*
((\\w)\\2+)+". 
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激!

Fra*_*Man 33

http://regexr.com?34vo9

正则表达式:

^(?=.{8,20}$)(([a-z0-9])\2?(?!\2))+$
Run Code Online (Sandbox Code Playgroud)

第一个lookahead((?=.{8,20}$))检查字符串的长度.第二部分通过以下方式进行双重字符和有效性检查:

(
  ([a-z0-9])      Matching a character and storing it in a back reference.
  \2?             Optionally match one more EXACT COPY of that character.
  (?!\2)          Make sure the upcoming character is NOT the same character.
)+                Do this ad nauseum.
$                 End of string.
Run Code Online (Sandbox Code Playgroud)

好的.我看到你增加了一些额外的要求.我的基本论坛仍然有效,但我们必须给你更多的一步一步的方法.所以:

^...$
Run Code Online (Sandbox Code Playgroud)

由于显而易见的原因,您的整个正则表达式将被放入开始和结束字符中.

(?=.{n,m}$)
Run Code Online (Sandbox Code Playgroud)

长度检查.将它放在正则表达式的开头,n为最小长度,m为最大长度.

(?=(?:[^REQ]*[REQ]){n,m})
Run Code Online (Sandbox Code Playgroud)

必填字符.将它放在正则表达式的开头,REQ作为您的角色需要N到M的必需角色.你可能(?: ..){n,m}只需要一个角色.

(?:([VALID])\1?(?!\1))+
Run Code Online (Sandbox Code Playgroud)

你表达的其余部分.用有效字符替换VALID.所以,您的密码正则表达式是:

^(?=.{8,20}$)(?=[^A-Za-z]*[A-Za-z])(?=[^0-9]*[0-9])(?:([\w\d*?!:;])\1?(?!\1))+$
Run Code Online (Sandbox Code Playgroud)

"Splained:

^
  (?=.{8,20}$)                 8 to 20 characters
  (?=[^A-Za-z]*[A-Za-z])       At least one Alpha
  (?=[^0-9]*[0-9])             At least one Numeric
  (?:([\w\d*?!:;])\1?(?!\1))+  Valid Characters, not repeated thrice.
$
Run Code Online (Sandbox Code Playgroud)

http://regexr.com?34vol 这是新的行动.