임은 다음과 같습니다 멋진 정규 표현식 빌더를 가지고 :정규 표현식 C#을 암호는 공백을 제거
string numberOfDigits = "2";
string numberOfCaps = "2";
string numberOfChars = "3";
string numberOfNonAlpha = "3";
string minLength = "10";
string rexExString = "^(?=.*\\d{" + numberOfDigits + "})(?=.*[A-Z]{" + numberOfCaps + "})(?=.*[a-z]{" + numberOfChars + "})(?=.*[[email protected]#$%^&*()]{" + numberOfNonAlpha + "}).{" + minLength + ",}$";
출력은 다음됩니다
^(?=.*\d{2})(?=.*[A-Z]{2})(?=.*[a-z]{3})(?=.*[[email protected]#$%^&*()]{3}).{10,}$
내가 얼마나 많은 숫자, 문자를 지정할 수 있습니다이 방법 , nonalpha 등 내 비밀 번호를 원한다. 나는 그것을 이렇게 유지하고 싶다. 유일한 문제는 그것도 공백을 허용하고, 내 암호에 대한 그걸 원하지 않는다는 것입니다.
내 질문 형식으로 내 정규식에 공백이 있지만, 그것을 유지 그래서 내가 위의 예에서와 같이 변수를 지정할 수 있습니다 허용하지하는 방법
.
^(?=.*\d{2})(?=.*[A-Z]{2})(?=.*[a-z]{3})(?=.*[[email protected]#$%^&*()]{3}).{10,}$
정규식을 사용하면 다른 체크와 마찬가지로 2 자리 숫자가 함께 표시됩니다 - 실제로 원하는 것입니까? 대부분의 암호 정책은 문자의 수를 주장하며 발생 위치가 아닙니다. –
'\ d'을 사용하지 마십시오. '[0-9]'를 사용해야합니다. '\ d'는 비 유럽 언어와 일치합니다. http://msdn.microsoft.com/en-us/library/w1c0s6bb.aspx – xanatos