유틸리티 소개

이메일 주소 정규표현식 검증하는 가장 실용적인 패턴

이메일 검증 정규표현식을 검색하면 엄청 복잡한 패턴이 나온다. RFC 5322 완벽 준수 패턴은 몇 백 글자다. 근데 실제로는 그렇게 복잡한 거 안 써도 된다.

실용적인 이메일 패턴

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$ 이 정도면 충분하다. 정규표현식 테스터에서 직접 테스트해보자. [email protected]은 통과, test@test는 실패.

패턴 분석

[a-zA-Z0-9._%+-]+ 는 @ 앞부분으로 영문, 숫자, 일부 특수문자 허용. @ 뒤에는 도메인명, . 뒤에는 최소 2글자 이상의 TLD가 와야 한다.

주의사항

이 패턴으로 100% 검증은 안 된다. 형식이 맞아도 실제 없는 이메일일 수 있다. 진짜 검증은 인증 메일 보내는 수밖에 없다. 테스터로 형식 검증만 하자.

실무에서 자주 하는 실수

정규표현식을 처음 쓸 때 가장 흔한 실수가 특수문자 이스케이프를 빼먹는 거다. 점(.)을 문자 그대로 찾으려고 했는데 아무 문자나 다 매칭되는 상황. 항상 특수문자가 있으면 이스케이프가 필요한지 확인하자.

테스트 습관 들이기

정규표현식 테스터로 패턴을 작성하기 전에 먼저 테스트하는 습관을 들이면 실수를 크게 줄일 수 있다. 예상대로 동작하는지 여러 입력으로 확인하고 나서 코드에 적용하자. 그래야 나중에 디버깅 시간을 아낄 수 있다.

정규표현식이 만능은 아니다

모든 문자열 처리를 정규표현식으로 하려고 하면 오히려 복잡해진다. 단순한 작업은 문자열 메서드로, 복잡한 파싱은 전용 라이브러리로 하는 게 나을 수 있다. 적재적소에 사용하자.