<aside> 💬 lv0, 정규표현식

이메일 주소 검증

문제 설명

주어진 문자열이 유효한 이메일 주소인지 확인하는 함수를 작성해주세요. 이메일 주소는 일반적으로 local-part@domain 형식을 따릅니다. 여기서 local-part는 대소문자, 숫자, 특정 특수 문자(._+)를 포함할 수 있고, domain은 대소문자, 숫자, 하이픈(-)과 점(.)을 포함할 수 있습니다. domain의 마지막 부분은 점(.)으로 구분된 두 글자 이상의 알파벳 문자열이어야 합니다.


제한 사항


입출력 예

입력 (문자열) 출력 (유효 여부)
[email protected] True
[email protected] True
user@domain False
@example.com False

입출력 설명

첫 번째와 두 번째 예시는 유효한 이메일 형식을 따릅니다. 세 번째 예시는 domain 부분이 유효한 형식을 따르지 않으며, 네 번째 예시는 local-part가 없어 유효하지 않습니다.

</aside>

😺 풀이 1. match

import re **#1 정규표현식 모듈 호출**

def solution(data):
    pattern = r"^[a-zA-Z0-9._+]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$" **#2 패턴 정의**
    return bool(re.match(pattern, data)) **#3 match 함수 사용**

단계별 풀이 전략

  1. 정규표현식 모듈 호출

    정규표현식의 내장 함수를 사용하기 위해 reimport합니다.

  2. 패턴 정의

    이메일 주소 형식을 검증하기 위해 패턴을 작성합니다. 로컬, 도메인, 최상위 도메인 부분에 걸쳐 나눠 패턴을 작성해줍니다.

  3. match 함수 사용

    match함수를 사용해 주어진 데이터와 작성한 패턴이 알맞은지 검사하여 bool함수를 통해 True, False를 반환합니다.

알아둬야 할 개념

정규표현식


bool 함수

x = 10
y = 5
print(bool(x > y)) # 출력: True

match 함수