유틸리티

정규식 테스트, 패턴 작성부터 실시간 매칭 확인까지

정규표현식을 처음 접하면 /^[a-zA-Z0-9]+$/ 같은 패턴이 암호문처럼 보인다. 막상 작성해도 의도대로 동작하는지 확인하려면 코드를 실행해봐야 하는데, 테스터를 쓰면 입력 즉시 결과가 나온다.

자주 쓰는 정규식 패턴

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

이 패턴들은 기본형이라 실제 서비스에서는 더 정밀한 검증이 필요할 수 있다. 이메일의 경우 RFC 5322 전체 스펙을 정규식으로 표현하면 수백 자가 넘기 때문에, 실무에서는 기본 형태만 걸러내고 실제 발송으로 최종 확인하는 방식을 쓴다.

플래그 옵션 이해하기

g (global)
첫 번째 매치에서 멈추지 않고 전체 텍스트에서 모든 매치를 찾는다.
i (ignore case)
대소문자를 구분하지 않는다. /hello/i는 Hello, HELLO도 매치.
m (multiline)
^$가 전체 문자열이 아닌 각 줄의 시작과 끝에서 작동한다.
s (dotAll)
점(.)이 줄바꿈 문자까지 포함해서 매치한다.

캡처 그룹 활용

괄호 ()로 감싼 부분은 캡처 그룹이 되어 매치된 값을 따로 추출할 수 있다.

예시 패턴: (\d{4})-(\d{2})-(\d{2})
입력: "오늘은 2026-03-01입니다"
→ 그룹1: 2026, 그룹2: 03, 그룹3: 01

날짜, 전화번호, URL에서 특정 부분만 뽑아낼 때 유용하다.

패턴 실시간으로 테스트하기

정규식은 한 글자만 틀려도 완전히 다른 결과가 나온다. 정규식 테스터에 패턴과 테스트 문자열을 넣으면 매치되는 부분이 실시간으로 하이라이트된다. 캡처 그룹별 값, 매치 인덱스까지 상세 정보가 나와서 디버깅이 빠르다.

코드에 넣기 전에 테스터에서 한 번 확인하는 습관을 들이면 실수가 확 줄어든다.