긍정적인 전망은 어느 정도 이해합니다.
X(?=Y)는 "X를 찾지만 Y가 뒤에 오는 경우에만 일치함"을 의미합니다.
그러나 아래 정규식에서는 정규식 시작 부분에서 긍정적인 예측의 중요성을 이해하지 못합니다.
^(?:(?=.*\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9]))(?!.*(.)\1{2,})
긍정적인 예측이 처음에 무엇을 하는지, 위의 정규 표현식이 무엇을 하는지 설명할 수 있는 사람이 있나요?
편집하다- 도움이 된다면 전체 정규식은 다음과 같습니다. -
^(?:(?=.*\d)(?=.*[A-Z])(?=.*[a-z])|(?=.*\d)(?=.*[^A-Za-z0-9])(?=.*[a-z])|(?=.*[^A-Za-z0-9])(?=.*[A-Z])(?=.*[a-z])|(?=.*\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9]))(?!.*(.)\1{2,})[A-Za-z0-9]{8,64}$
전체 정규식은 대문자, 소문자, 숫자 및 8~64자 길이를 포함하는 문자열과 일치해야 합니다.
답변1
귀하의 ^(?:(?=.*\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9]))(?!.*(.)\1{2,})
정규식은 다음과 같습니다
^(?=.*\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9])(?!.*(.)\1{2,})`
보다정규식 데모.
여기서 미리보기를 수행 하려면 개행 문자 이외의 0개 이상의 문자 뒤에 ?=
특정 패턴이 있거나( ) 없거나( ) 있어야 합니다. ?!
이것은 일반적인 비밀번호 검사 정규식입니다.
^
각 정방향 검사를 실행하는 데 충분하므로 앵커 문자열 start 뒤에 사용됩니다 .한 번문자열의 시작 부분에. 둘러보기는 너비가 0인 어설션이므로 네 가지 둘러보기는 모두 문자열 시작 부분에서 하나씩 트리거됩니다.
일치한다
^
- 문자열의 시작(?=.*\d)
- 개행 문자를 제외한 0개 이상의 문자 뒤에는 최소한 하나의 숫자가 와야 합니다.(?=.*[A-Z])
- 개행 문자 이외의 0개 이상의 문자 뒤에는 최소한 하나 이상의 대문자 ASCII 문자가 와야 합니다.(?=.*[^A-Za-z0-9])
- 개행 문자 이외의 0개 이상의 문자 뒤에는 ASCII 영숫자 문자 이외의 문자가 하나 이상 와야 합니다.(?!.*(.)\1{2,})
- 개행 문자 이외의 0개 이상의 문자 뒤에는 개행 문자 이외의 동일한 문자의 3개 이상의 연속 문자가 올 수 없습니다.
정규식 함수에 전체 문자열 일치가 필요한 경우가 있으므로 .*
이는 패턴 끝에 필요할 수 있습니다.
두 번째 정규식은 실제로 다음과 같습니다 ^(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?!.*(.)\1{2,})[A-Za-z0-9]{8,64}$
.이 정규식 데모 및 설명. 사용된 - - 패턴 부분은 ASCII 문자 또는 숫자에만 일치하고 ASCII 영숫자 문자 이외의 문자와 일치하지 않으므로 모든 대체 항목은 (?=.*[^A-Za-z0-9])
절대 일치하지 않습니다 .[A-Za-z0-9]{8,64}