Notice
Recent Posts
Recent Comments
Link
오늘도 개발
이메일과 비밀번호 예시로 보는 정규식(Regex) 본문
이메일 정규식
^는 문자열의 시작, $는 문자열의 끝
[]는 매치될 수 있는 문자의 목록
a-z는 소문자 전체, A-Z는 대문자 전체, 0-9는 숫자 전체
+는 + 앞의 문자가 1번이상 반복되어야 매치
\.은 .을 나타냄
아래 정규표현식은 소문자 전체, 대문자 전체, 숫자 전체, +기호, -기호, _기호, .중 하나가 한 번이상 반복되는지 확인한다.
[a-zA-Z0-9+-_.]+
이를 이메일 주소를 검증할 수 있게 조립하면 다음과 같다.
import re
regex_email = '^[a-zA-Z0-9+-_.]+@[0a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$'
print(re.match(regex_email, 'sue@email.com'))
# 매치하면 오브젝트 반환 <re.Match object; span=(0, 13), match='sue@email.com'>
# 매치하지 않으면 None 반환

비밀번호 정규식
(?=)는 전방 탐색
.는 모든 문자
*는 * 앞의 문자가 0번이상 반복되면 매치
[A-Za-z]는 대소문자 전체 매치
\d는 숫자인 것 모두 매치
{8, }은 문자열 길이가 최소 8이라야 매치
import re
# 최소 하나의 문자, 하나의 숫자, 하나의 특수문자, 최소 8글자 이상
regex_password = '^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@!%*#?&])[A-Za-z\d$@$!%*#?&]{8,}$'
print(re.match(regex_password, 'abc123!@'))

참고
'웹 프로그래밍 > Python3' 카테고리의 다른 글
| Python unittest 모듈로 Unit Test해보기 (0) | 2022.08.05 |
|---|---|
| Min, Max 함수 (0) | 2022.07.13 |
| 파이썬 모듈과 패키지(Module & Package) (0) | 2022.06.23 |
| 파이썬 인수(Argument)의 종류와 규칙 (0) | 2022.06.23 |
| 파이썬 객체(Object) (0) | 2022.06.09 |