유틸리티

정규식 테스트 온라인에서 바로 하는 법 (패턴별 예시)

정규표현식을 작성하고 코드를 돌려봤는데 매칭이 안 된다. 괄호가 빠진 건지, 이스케이프를 잘못한 건지 코드만 봐서는 원인 파악이 어렵다. 정규식 테스트를 실시간으로 할 수 있으면 패턴을 고치면서 바로 결과를 확인할 수 있다.

실시간으로 패턴 확인하기

온라인 정규식 테스터에 패턴과 테스트 문자열을 넣으면, 매칭되는 부분이 즉시 강조 표시된다. 코드를 실행하지 않아도 패턴을 수정할 때마다 결과가 바뀌니까 시행착오가 빠르다.

매칭 결과에는 각 항목의 인덱스 위치와 캡처 그룹 정보가 함께 나온다. 괄호로 묶은 캡처 그룹이 제대로 잡히는지 한눈에 확인할 수 있다.

자주 쓰는 정규식 패턴

매번 처음부터 짜기보다, 이미 검증된 패턴을 가져다 쓰는 게 실수를 줄이는 방법이다. 프리셋으로 제공되는 패턴들이 있다.

프리셋패턴 예시매칭 대상
이메일[a-zA-Z0-9._%+-]+@...[email protected]
전화번호01[016789]-\d{3,4}-\d{4}010-1234-5678
URLhttps?://...https://example.com
한글[가-힣]+한글 텍스트

프리셋 버튼을 누르면 패턴이 자동으로 입력된다. 거기서 필요에 맞게 조금씩 수정하면 된다.

플래그 설정이 결과를 바꾼다

g (global)
첫 번째 매칭만이 아니라 문자열 전체에서 모든 매칭을 찾는다.
i (case-insensitive)
대소문자를 구분하지 않는다. Email과 email이 같은 패턴에 걸린다.
m (multiline)
^와 $가 전체 문자열이 아니라 각 줄의 시작과 끝에 매칭된다.
s (dotAll)
마침표(.)가 줄바꿈 문자까지 포함해서 매칭한다.
TIP JavaScript 기반 엔진이므로, Python이나 Java에서 지원하는 후방탐색(lookbehind) 등 일부 문법은 동작이 다를 수 있다. 사용하려는 언어의 엔진과 맞는지 확인하자.

정규식은 써본 사람도 한 번에 맞추기 어렵다. 실시간으로 결과를 보면서 고치는 게 가장 빠른 방법이다.