유틸리티

정규표현식 테스트하는 법 (자주 쓰는 패턴 포함)

사용자가 입력한 이메일 주소가 올바른 형식인지 확인하려면 조건문을 여러 개 쓸 수도 있지만, 정규표현식 한 줄이면 끝난다. 처음 접하면 외계어처럼 보이지만, 기본 기호 10개만 익히면 대부분의 패턴을 읽고 쓸 수 있다.

정규식 기본 기호

기호의미예시
.아무 문자 1개a.c → abc, a1c, a@c
*앞 문자 0회 이상 반복ab*c → ac, abc, abbc
+앞 문자 1회 이상 반복ab+c → abc, abbc (ac은 X)
?앞 문자 0회 또는 1회colou?r → color, colour
\d숫자 (0-9)\d{3} → 123, 456
\w영문, 숫자, 밑줄\w+ → hello, test_1
[abc]a, b, c 중 하나[aeiou] → 모음 1개
^문자열 시작^Hello → Hello로 시작하는 줄
$문자열 끝end$ → end로 끝나는 줄
()그룹 캡처(\d{2})-(\d{4}) → 그룹별 추출

자주 쓰는 정규식 패턴

이메일 검증
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
한국 전화번호
01[016789]-?\d{3,4}-?\d{4}
URL
https?://[\w\-]+(\.[\w\-]+)+[/\w\-.,@?^=%&:~+#]*
한글만
[가-힣]+
숫자만 (콤마 포함 가격)
\d{1,3}(,\d{3})*

정규식 테스트하는 법

  1. 패턴 입력: 정규식 테스터의 Pattern 칸에 정규표현식을 입력한다. 프리셋(이메일, URL, 전화번호 등)을 클릭하면 바로 채워진다.
  2. 플래그 설정: g(전체 매칭), i(대소문자 무시), m(멀티라인) 등 필요한 플래그를 켠다.
  3. 테스트 문자열 입력: 검증할 텍스트를 넣으면 매칭되는 부분이 실시간으로 하이라이트된다.
  4. 결과 확인: 매치 개수, 각 매치의 위치, 캡처 그룹 내용이 상세하게 표시된다.
TIP 정규식을 처음 짤 때는 간단한 패턴부터 시작해서 조건을 하나씩 추가하는 게 좋다. 한 번에 복잡한 패턴을 쓰면 어디서 틀렸는지 찾기 어렵다.

플래그 옵션 정리

  • g (global): 첫 번째 매치에서 멈추지 않고 전체를 검색한다. 대부분의 경우 켜두는 게 맞다.
  • i (ignore case): A와 a를 같은 문자로 취급한다.
  • m (multiline): ^와 $가 전체 문자열이 아닌 각 줄의 시작/끝을 의미한다.
  • s (dotAll): .이 줄바꿈 문자까지 포함해서 매칭한다.

정규표현식은 한 번 익히면 어떤 프로그래밍 언어에서든 쓸 수 있다. 코드에 적용하기 전에 테스터에서 먼저 돌려보면 디버깅 시간이 줄어든다.