정규식 테스트기

정규표현식이 어떤 부분과 일치하는지 바로 표시하고 그룹과 치환 결과를 보여줍니다.

사용 방법

  1. 패턴을 슬래시 없이 입력하고 플래그를 고릅니다. 예: \d+
  2. 테스트 문자열에서 일치하는 부분이 색으로 표시되고, 아래 표에 위치와 그룹 값이 나옵니다.
  3. 치환 문자열을 넣으면 String.prototype.replace와 같은 규칙으로 바꾼 결과를 미리 보여 줍니다.
  4. 실행이 2초를 넘으면 중단하고 알려 줍니다. 테스트 문자열은 20만 자, 일치 표시는 1,000개까지입니다.

자주 쓰는 패턴

용도패턴테스트 문자열일치
휴대폰 번호/01[016789]-?\d{3,4}-?\d{4}/g연락처 010-1234-5678, 01098765432"010-1234-5678", "01098765432"
YYYY-MM-DD 날짜/\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])/g2026-09-22 ~ 2026-13-01"2026-09-22"
한글 단어/[가-힣]+/gHello 세상, 안녕!"세상", "안녕"
이메일(단순)/[\w.+-]+@[\w-]+(\.[\w-]+)+/g[email protected] 로 보내 주세요"[email protected]"
앞뒤 공백/^\s+|\s+$/g 가운데 " ", " "

이메일·전화번호 패턴은 형식을 대략 거르는 용도입니다. 실제로 존재하는 주소·번호인지는 정규식으로 확인할 수 없습니다.

문법 요약

문법
.줄바꿈을 뺀 아무 글자 (s 플래그면 줄바꿈 포함)
\d \w \s숫자, 영문자·숫자·밑줄, 공백 (대문자 \D \W \S는 반대)
[abc] [^abc] [a-z]문자 집합, 제외 집합, 범위
* + ? {n,m}0번 이상, 1번 이상, 0~1번, n~m번 (뒤에 ?를 붙이면 최소 일치)
^ $ \b시작, 끝, 단어 경계
( ) (?: ) (?<이름> )캡처 그룹, 캡처 안 하는 그룹, 이름 있는 그룹
(?= ) (?! ) (?<= ) (?<! )뒤에 오는지, 안 오는지, 앞에 있는지, 없는지 (전후방 탐색)
\p{Script=Hangul}유니코드 속성 (u 플래그 필요)

자주 묻는 질문

정규식 하나 때문에 페이지가 멈출 수도 있나요?

네. (a+)+$ 처럼 반복이 겹친 패턴은 일치하지 않는 입력에서 경우의 수를 폭발적으로 시도하는 "파국적 백트래킹"을 일으켜 몇 분씩 멈출 수 있습니다(ReDoS). 이 도구는 정규식을 별도 작업 스레드(Web Worker)에서 실행하고 2초가 넘으면 강제로 중단해 페이지가 멈추지 않게 합니다. 시간 초과가 나면 반복을 겹치지 않게 패턴을 고쳐야 실제 서비스에서도 안전합니다.

g 플래그를 붙인 정규식의 test()가 true, false를 번갈아 내는 이유는?

g나 y 플래그가 있으면 정규식 객체가 lastIndex에 마지막 일치 위치를 기억하고, 다음 test()를 그 위치부터 검사하기 때문입니다. 같은 문자열을 반복 검사할 때는 g를 빼거나 매번 lastIndex = 0으로 되돌리세요. 이 도구는 매번 처음부터 검사합니다.

한글만 찾으려면 [가-힣]과 \p{Script=Hangul} 중 무엇을 쓰나요?

[가-힣]은 완성형 음절 11,172자만 찾고 ㄱ·ㅏ 같은 낱자는 빠집니다. \p{Script=Hangul}은 낱자와 옛한글까지 포함하며 u 플래그가 있어야 동작합니다. 이름·주소 입력 검사처럼 완성된 글자만 받을 때는 [가-힣], 한글이 섞였는지 판단할 때는 \p{Script=Hangul}이 알맞습니다.

치환할 때 이름 있는 그룹은 어떻게 참조하나요?

(?<year>\d{4})처럼 이름을 붙이면 치환 문자열에서 $<year>로 가져올 수 있습니다. 번호로는 $1, $2, 일치 전체는 $&, 일치 앞뒤 문자열은 $` 와 $', 달러 기호 자체는 $$ 로 씁니다.

여기서는 되는데 자바·파이썬에서는 결과가 달라요.

이 도구는 브라우저의 자바스크립트 정규식 엔진을 그대로 씁니다. 언어마다 지원 문법(예: 소유 수량자 a++, 원자 그룹, 인라인 플래그 (?i))과 \d·\w가 유니코드 숫자를 포함하는지 등이 달라 결과가 다를 수 있습니다. 자바스크립트·타입스크립트·Node.js 코드에는 결과가 그대로 맞습니다.

이 도구가 도움이 되었다면 공유해 주세요

계산 근거

이 계산기가 쓰는 세율·요율·기준의 출처입니다. 숫자가 맞는지 직접 확인해 보세요.

계산 결과가 이상한가요? 알려 주세요.

계산 결과는 참고용이며 법적 효력이 없습니다.

다른 도구