유틸리티

정규표현식 자주 쓰는 패턴 5가지와 온라인 테스트 방법

회원가입 폼에서 이메일 주소가 올바른 형식인지 걸러내야 한다. if문으로 @가 있는지, .com이 붙었는지 하나씩 체크하면 코드만 길어진다. 정규표현식 한 줄이면 한 번에 검증할 수 있다.

정규식 기본 문법

정규표현식(Regular Expression, Regex)은 문자열에서 특정 패턴을 찾는 규칙이다. 처음 보면 암호 같지만, 핵심 기호 몇 개만 알면 대부분의 상황을 커버할 수 있다.

기호의미예시
.아무 문자 1개a.c → abc, aXc
*앞 문자 0회 이상ab* → a, ab, abbb
+앞 문자 1회 이상ab+ → ab, abbb
?앞 문자 0 또는 1회colou?r → color, colour
\d숫자 (0-9)\d{3} → 123, 456
\w영문, 숫자, 밑줄\w+ → hello, test_1
[ ]문자 집합[aeiou] → 모음 1개
^ / $시작 / 끝^Hello → Hello로 시작

실무에서 자주 쓰는 패턴

이메일 검증

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

@ 앞에 영문, 숫자, 일부 특수문자를 허용하고, 뒤에 도메인 형태가 오는지 확인한다.

한국 전화번호

^01[016789]-?\d{3,4}-?\d{4}$

010, 011, 016 등으로 시작하고, 하이픈은 있어도 없어도 매칭된다.

한글만 추출

[가-힣]+

유니코드 범위를 이용해 한글 음절만 골라낸다. 자음이나 모음만 따로 잡으려면 [ㄱ-ㅎㅏ-ㅣ]를 쓴다.

URL 형식

https?:\/\/[^\s]+

http:// 또는 https://로 시작하는 문자열을 잡아낸다. 공백이 나올 때까지 URL로 인식한다.

숫자만 추출

\d+

문자열 속에 섞여 있는 숫자만 뽑아낼 때 쓴다. 가격, 수량 등을 파싱할 때 유용하다.

주의 위 패턴들은 기본적인 검증용이다. 이메일 정규식은 RFC 5322를 완벽히 커버하지 못하고, URL 패턴도 쿼리 파라미터가 복잡하면 놓칠 수 있다. 실무에서는 라이브러리 검증과 병행하는 게 안전하다.

플래그 옵션

정규식 뒤에 붙이는 플래그에 따라 동작이 달라진다.

  • g (global): 첫 번째 매치에서 멈추지 않고 전체를 검색한다
  • i (ignore case): 대소문자를 구분하지 않는다
  • m (multiline): ^와 $가 각 줄의 시작과 끝에 적용된다
  • s (dotAll): 점(.)이 줄바꿈 문자까지 포함해서 매칭한다

패턴 테스트하는 법

정규식은 한 글자 차이로 결과가 완전히 달라진다. 코드에 적용하기 전에 온라인 정규식 테스터에서 먼저 돌려보면 실수를 줄일 수 있다. 패턴을 입력하고 테스트 문자열을 넣으면 매칭 부분이 실시간으로 하이라이트되고, 캡처 그룹별 결과까지 표시된다. 이메일, 전화번호, URL 같은 프리셋 패턴도 클릭 한 번으로 불러올 수 있어서 처음 배울 때 참고하기 좋다.

정규식은 한 번 익혀두면 어떤 언어에서든 거의 같은 문법으로 쓸 수 있다. 자주 쓰는 패턴 몇 개만 저장해 두면 매번 처음부터 짤 필요가 없어진다.