반응형
문자열에 적어도 하나의 소문자, 대문자, 숫자 및 기호가 포함되어 있는지 확인
주어진 문자열에 다음 각 범주의 문자를 하나 이상 포함시키는 정규식은 무엇입니까?
- 소문자
- 대문자
- 숫자
- 상징
나는 즉, 각각의 세트에 대한 패턴을 알고 [a-z]
, [A-Z]
, \d
및 _|[^\w]
(내가 그들을 수정 얻었다을하지 않았다?).
그러나 문자열을 순서에 관계없이 포함시키기 위해 어떻게 결합합니까?
하나의 정규 표현식이 필요한 경우 다음을 시도하십시오.
(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*\W)
간단한 설명 :
(?=.*[a-z]) // use positive look ahead to see if at least one lower case letter exists
(?=.*[A-Z]) // use positive look ahead to see if at least one upper case letter exists
(?=.*\d) // use positive look ahead to see if at least one digit exists
(?=.*\W]) // use positive look ahead to see if at least one non-word character exists
그리고 SilentGhost에 동의합니다 \W
. 나는 이것을 다음과 같은 문자 세트로 대체 할 것입니다 : [-+_!@#$%^&*.,?]
(물론 추가 할 수 있습니다!)
바트 키 어스, 정규식에 몇 가지 문제가 있습니다. 가장 좋은 방법은 다음과 같습니다.
(.*[a-z].*) // For lower cases
(.*[A-Z].*) // For upper cases
(.*\d.*) // For digits
이런 식으로 시작, 끝 또는 중간에 상관없이 검색합니다. 복잡한 암호로 많은 문제가 있습니다.
이 세 그룹을 개별적으로 일치시키고 모두 존재하는지 확인하십시오. 또한 [^\w]
너무 넓게 보이지만 원하는 경우로 대체 할 수 있습니다 \W
.
반응형
'Programing' 카테고리의 다른 글
2리스트를 병합하는 방법 (0) | 2020.06.19 |
---|---|
유형 또는 네임 스페이스 이름 'DbContext'를 찾을 수 없습니다. (0) | 2020.06.19 |
변수에 이름이 지정된 JavaScript 함수 호출 (0) | 2020.06.19 |
PHP에서 세션 시간 초과를 변경하는 방법은 무엇입니까? (0) | 2020.06.19 |
텍스트 OpenCV 추출 (0) | 2020.06.19 |