Regular Expressions
비밀번호 인증 정규식
수색…
최소 1 개의 대문자, 1 개의 소문자, 1 개의 숫자, 1 개의 특수 문자를 포함하고 길이가 적어도 10 인 비밀번호
문자 / 숫자는 문자열 내의 아무 곳에 나있을 수 있으므로 미리보기가 필요합니다. Lookahead는 zero width
가 없으므로 문자열을 사용하지 않습니다. 간단히 말하자면, 미리보기의 각 조건이 충족되면 점검 위치가 원래 위치로 재설정됩니다.
가정 : - 단어가 아닌 문자를 특별 하다고 생각할 때
^(?=.{10,}$)(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*\W).*$
설명으로 진행하기 전에 문자열 1$d%aA
에서 regex ^(?=.*[az])
가 어떻게 작동하는지 ( 길이는 여기 에 고려되지 않음 )
이미지 크레디트 : - https://regex101.com/
주의 사항
- 앵커 태그
^
로 인해 문자열의 처음부터 확인이 시작됩니다. - 미리보기의 조건이 충족되면 확인 위치가 시작으로 재설정됩니다.
정규식 분석
^ #Starting of string
(?=.{10,}$) #Check there is at least 10 characters in the string.
#As this is lookahead the position of checking will reset to starting again
(?=.*[a-z]) #Check if there is at least one lowercase in string.
#As this is lookahead the position of checking will reset to starting again
(?=.*[A-Z]) #Check if there is at least one uppercase in string.
#As this is lookahead the position of checking will reset to starting again
(?=.*[0-9]) #Check if there is at least one digit in string.
#As this is lookahead the position of checking will reset to starting again
(?=.*\W) #Check if there is at least one special character in string.
#As this is lookahead the position of checking will reset to starting again
.*$ #Capture the entire string if all the condition of lookahead is met. This is not required if only validation is needed
위의 정규식의 비 욕심 많은 버전을 사용할 수도 있습니다.
^(?=.{10,}$)(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[0-9])(?=.*?\W).*$
최소 2 개의 대문자, 1 개의 소문자, 2 자리 및 10 이상의 길이를 갖는 암호
위의 정규 표현식에서 조금 수정하면됩니다.
^(?=.{10,}$)(?=(?:.*?[A-Z]){2})(?=.*?[a-z])(?=(?:.*?[0-9]){2}).*$
또는
^(?=.{10,}$)(?=(?:.*[A-Z]){2})(?=.*[a-z])(?=(?:.*[0-9]){2}).*
간단한 정규식 ^(?=(?:.*?[AZ]){2})
가 문자열 abcAdefD
작동하는지 abcAdefD
이미지 크레디트 : - https://regex101.com/
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow