문제
다음 중 이메일 형식을 찾는 정규표현식으로 적절하지 않은 것은?
① REGEXP_SUBSTR(email, '[A-Za-z0-9.%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}') ② REGEXP_SUBSTR(email, '[[:alnum:].%+-]+@[[:alnum:].-]+.[[:alpha:]]{2,}') ③ REGEXP_SUBSTR(email, '[A-Za-z0-9._%+-]+@[A-Za-z0-9-]+') ④ REGEXP_SUBSTR(email, '[^@]+@[^@]+.[^@]+')
정답
3번
해설
정답: 3. 이메일 도메인 뒤에 점(.)과 최상위 도메인을 확인하는 부분이 없어 이메일 형식 검증으로 부적절하다.
오답 풀이
- 1번: 일반적인 이메일 패턴에 가깝다.
- 2번: POSIX 문자 클래스를 사용한 이메일 패턴이다.
- 3번: @ 뒤에 점(.)과 최상위 도메인을 요구하지 않아 부적절하다.
- 4번: 단순하지만 @ 뒤 점을 요구한다.
보충 개념
정규표현식에서 \.은 문자 그대로의 점을 의미한다. 이메일 검증은 복잡할 수 있으므로 시험에서는 제시된 패턴의 핵심 누락 여부를 확인한다.