정규표현식 테스트, regex tester, 정규식 매칭 확인, 정규식 문법
정규식 하나 만들어놓고 “이게 정말 원하는 문자열만 잡아내는 게 맞나” 싶어서 콘솔 열고 테스트해본 적 다들 있으실 겁니다. 이메일 형식 검사 하나 짜는 데도 특수문자 케이스 하나 놓쳐서 배포하고 나서야 버그로 발견되는 경우가 종종 있죠. 아래 도구에 정규식 패턴과 테스트할 문자열을 넣으면 매칭 여부와 매칭된 부분을 바로 하이라이트로 보여줍니다.
목차
정규식 패턴과 테스트 문자열을 넣고 플래그를 선택한 뒤 버튼을 누르면 됩니다. 매칭된 부분은 노란색으로 표시되고, 아래에 각 매칭의 위치와 캡처 그룹까지 정리해서 보여줍니다.
※ 브라우저 자바스크립트(ECMAScript) 정규식 엔진 기준으로 동작합니다. PHP(PCRE), Python(re) 등 다른 언어의 정규식 엔진과는 일부 문법(전방탐색, 유니코드 처리 등)이 다를 수 있습니다.
정규식은 문자열에서 특정 패턴을 찾기 위한 규칙입니다. 처음 보면 암호문 같지만 몇 가지 기호의 의미만 알면 대부분의 패턴은 읽을 수 있습니다.
.은 줄바꿈을 제외한 아무 문자 하나, \d는 숫자 하나, \w는 영문·숫자·언더스코어 하나, \s는 공백 문자 하나를 의미합니다. ^는 문자열의 시작, $는 문자열의 끝을 나타냅니다.
*는 0개 이상, +는 1개 이상, ?는 0개 또는 1개를 의미합니다. {2,4}처럼 중괄호를 쓰면 최소·최대 개수를 직접 지정할 수 있습니다. 위 테스터의 기본 예시인 \d{2,3}-\d{3,4}-\d{4}는 국번이 2~3자리, 다음 번호가 3~4자리, 마지막이 4자리인 전화번호 형식을 찾는 패턴입니다.
괄호 ( )로 묶으면 해당 부분을 그룹으로 캡처할 수 있습니다. 예를 들어 (\d{3})-(\d{4})처럼 쓰면 국번과 뒷자리를 각각 따로 뽑아낼 수 있어서, 전체 매칭 문자열뿐 아니라 특정 부분만 추출하고 싶을 때 유용합니다. 이 테스터도 매칭 결과에 그룹이 있으면 함께 표시해줍니다.
정규식 뒤에 붙는 플래그는 검색 방식을 바꿔줍니다.
문자열에서 처음 매칭되는 것 하나만 찾고 멈추지 않고, 끝까지 모든 매칭을 찾습니다. 여러 개를 한 번에 찾아야 할 때는 거의 필수로 켜두는 옵션입니다.
영문 대소문자를 구분하지 않고 매칭합니다. hello라는 패턴에 이 플래그를 켜면 Hello, HELLO도 모두 매칭됩니다.
기본적으로 ^와 $는 문자열 전체의 시작과 끝만 가리키는데, m 플래그를 켜면 각 줄의 시작과 끝으로 의미가 바뀝니다. 여러 줄로 된 텍스트에서 줄 단위로 패턴을 찾을 때 필요합니다.
기본적으로 .은 줄바꿈 문자는 포함하지 않는데, s 플래그를 켜면 줄바꿈까지 포함해서 매칭합니다. 여러 줄에 걸친 텍스트 블록 전체를 하나의 패턴으로 찾고 싶을 때 유용합니다.
실무에서 반복적으로 쓰게 되는 패턴 몇 가지를 정리했습니다. 테스터에 그대로 넣고 다양한 입력값으로 시험해보시면 이해가 빠릅니다.
^[\w.-]+@[\w-]+\.[a-zA-Z]{2,}$ 형태를 많이 씁니다. 다만 실제 이메일 규격(RFC 5322)은 훨씬 복잡해서, 완벽한 검증이 필요하다면 정규식만으로는 한계가 있고 인증 메일 발송 같은 방식과 함께 쓰는 게 안전합니다.
^0\d{1,2}-\d{3,4}-\d{4}$ 형태로 지역번호와 휴대전화 번호를 함께 검사할 수 있습니다. 하이픈 없이 숫자만 입력받는 경우라면 하이픈 부분을 -?로 바꿔서 있어도 없어도 매칭되게 만들 수 있습니다.
정규식은 조금만 잘못 써도 의도와 다르게 동작하기 쉬운데, 특히 *나 +를 남발하면 예상보다 훨씬 넓은 범위가 매칭되는 경우가 많습니다. 코드에 바로 넣기 전에 이런 테스터로 정상 케이스뿐 아니라 일부러 이상한 값도 넣어보고 매칭이 안 되는 것까지 확인해보는 습관을 들이면 나중에 겪을 버그를 꽤 줄일 수 있습니다.
패턴을 단순하게 줄여가면서 테스트해보는 게 가장 빠릅니다. 전체 패턴 대신 일부만 넣어보고 매칭되는지 확인하면서 범위를 넓혀가면 어느 부분에서 문제가 생기는지 찾기 쉽습니다.
괄호나 대괄호가 짝이 안 맞거나, 이스케이프 처리가 안 된 특수문자가 있을 때 자주 발생합니다. 오류 메시지에 표시되는 위치를 참고해서 해당 부분을 확인해보세요.
기본적인 문법은 비슷하지만 언어나 라이브러리마다 세부 문법 차이가 있습니다. 이 테스터는 자바스크립트 정규식 엔진을 기준으로 하니, 다른 언어에서 쓸 패턴이라면 해당 언어 문서로 한 번 더 확인하시는 걸 권합니다.
정규식은 몇 번 손에 익으면 텍스트 처리 작업 시간을 크게 줄여주는 도구입니다. 새로운 패턴을 만들 때마다 이 테스터에 먼저 돌려보고 코드에 넣는 습관을 들이면 배포 후 발견되는 자잘한 버그를 많이 줄일 수 있습니다.
영문 텍스트를 대문자, 소문자, 단어 첫 글자만 대문자(Capitalize)로 한 번에 변환하는 무료 도구입니다. 여러 줄…
연봉이나 월급을 입력하면 국민연금·건강보험·고용보험·소득세까지 자동 계산해 세후 실수령액을 바로 확인할 수 있는 무료 계산기입니다.
예금·적금 만기 이자를 단리와 복리, 일반과세·세금우대·비과세 조건으로 바로 계산해보세요. 세전·세후 실수령액까지 무료로 확인 가능합니다.
영문 단어를 띄어쓰기로 입력하면 약어, camelCase, PascalCase, snake_case, kebab-case로 바로 변환하고 복사까지 되는 무료 개발자…
대출상환금계산기로 원리금균등상환, 원금균등상환, 만기일시상환 방식의 월 상환액과 총 이자를 무료로 즉시 계산해보세요. 대출 전 필수…