유틸리티

정규식 테스트, 이메일·전화번호 패턴 바로 확인하는 법

회원가입 폼에서 이메일 형식을 검증하는 정규식을 작성했다. 코드에 넣고 돌려봤더니 정상 이메일이 걸러진다. 정규식은 한 글자만 빠져도 결과가 완전히 달라지기 때문에, 코드에 넣기 전에 패턴을 따로 테스트해보는 게 안전하다.

정규식으로 할 수 있는 것

  • 입력값이 특정 형식에 맞는지 검증 (이메일, 전화번호, 우편번호)
  • 텍스트에서 원하는 패턴을 검색 (로그에서 IP 추출)
  • 특정 패턴을 다른 문자열로 치환 (날짜 형식 변경)
  • 문자열을 구분자 기준으로 분할

자주 쓰는 정규식 패턴 모음

용도패턴설명
이메일[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}기본적인 이메일 형식 검증
전화번호01[016789]-?\d{3,4}-?\d{4}한국 휴대폰 번호
한글만[가-힣]+한글 문자만 매칭
숫자만\d+연속된 숫자 매칭

패턴 작성 후 바로 테스트하기

정규식 테스터에 패턴을 입력하고 테스트 문자열을 넣으면, 매칭되는 부분이 초록색으로 하이라이트된다. 매치 개수, 위치(인덱스), 캡처 그룹까지 상세하게 보여줘서 패턴이 의도대로 작동하는지 즉시 확인할 수 있다.

g(전역 검색), i(대소문자 무시), m(다중 줄), s(dotAll) 플래그도 체크박스로 쉽게 토글된다. 이메일, URL, 전화번호 같은 자주 쓰는 패턴은 프리셋 버튼으로 한 번에 불러올 수 있다.

정규식 작성할 때 자주 하는 실수

  1. 이스케이프 누락 — 마침표(.)는 "모든 문자"를 의미한다. 실제 마침표를 찾으려면 \.으로 이스케이프해야 한다
  2. 탐욕적 매칭.*는 가능한 한 많이 매칭한다. 최소 매칭이 필요하면 .*?를 쓴다
  3. 앵커 없음^(시작)과 $(끝) 없이 검증하면 문자열 일부만 맞아도 통과된다
TIP 정규식을 코드에 바로 넣지 말고, 정상 케이스와 비정상 케이스 여러 개로 테스트한 뒤에 적용하자. 엣지 케이스에서 버그가 나는 경우가 많다.

정규식은 한번 익혀두면 어떤 언어에서든 비슷하게 쓸 수 있다. 복잡한 패턴일수록 테스터에서 먼저 확인하는 습관이 디버깅 시간을 줄여준다.