정규식 테스터

패턴과 문장을 넣으면 어디가 잡히는지 바로 표시합니다. 그룹 값도 함께 보여줍니다.

정규식 테스터

패턴 입력

아래 예시를 눌러 시작할 수도 있습니다

플래그
  • g · 전역 — 첫 번째만이 아니라 전부 찾습니다
자주 쓰는 패턴

사용법

  1. 자주 쓰는 패턴을 누르면 패턴·플래그·예시 문장이 한 번에 채워집니다. 거기서 고쳐 가며 익히는 편이 빠릅니다.
  2. 매치된 부분은 본문에서 색으로 표시되고, 아래 표에 위치와 그룹 값이 나옵니다.
  3. 패턴에 문법 오류가 있으면 무엇이 잘못됐는지 한국어로 알려 줍니다.
  4. /식/ 복사를 누르면 플래그까지 포함한 형태로 클립보드에 담깁니다.

정규식에서 조심할 것

파국적 백트래킹이 가장 위험합니다. (a+)+b처럼 수량자가 중첩되면 매치에 실패할 때 경우의 수를 전부 되짚느라 계산이 지수로 늘어납니다. 짧은 입력에서는 멀쩡하다가 긴 입력이 들어오는 순간 서버가 멈추기 때문에 실제 장애로 이어집니다. 이 도구는 길이를 제한하고 위험한 모양에 경고를 띄우지만, 자바스크립트에는 정규식 시간 제한이 없어 완전히 막지는 못합니다.

g 플래그와 lastIndex도 자주 걸립니다. g가 붙은 정규식 객체는 어디까지 찾았는지를 기억하므로, 같은 객체를 여러 번 쓰면 두 번째부터 앞부분을 건너뜁니다. 상수로 선언한 정규식을 반복문에서 재사용하다 결과가 들쭉날쭉해지는 원인입니다.

한글은 \\w에 포함되지 않습니다. 완성형은 [가-힣], 자음·모음 단독은 [ㄱ-ㅎㅏ-ㅣ]로 따로 잡아야 합니다. 이모지처럼 두 칸을 차지하는 문자를 한 글자로 다루려면 u 플래그가 필요합니다.

HTML 파싱에 정규식을 쓰지 마세요. 태그가 중첩되고 속성에 꺾쇠가 들어갈 수 있어 정규식으로는 원리적으로 다룰 수 없습니다. 간단히 태그를 지우는 정도라면 몰라도, 구조를 읽어야 한다면 파서를 쓰는 것이 맞습니다.

자주 묻는 질문

정규식이 브라우저를 멈추게 할 수도 있나요?
있습니다. (a+)+b 같은 중첩 수량자에 긴 문자열을 물리면 경우의 수가 지수로 늘어 계산이 끝나지 않습니다. 파국적 백트래킹이라고 부르며 실제 서비스 장애의 원인이 되기도 합니다. 이 도구는 테스트 문자열을 2만 자로 제한하고 위험한 모양이 보이면 경고하지만, 자바스크립트 정규식에는 시간 제한을 걸 방법이 없어 완전한 방어는 아닙니다.
g 플래그를 켜면 무엇이 달라지나요?
첫 번째 매치만 찾던 것이 전부 찾기로 바뀝니다. 주의할 점은 g가 붙은 정규식 객체가 lastIndex라는 상태를 갖는다는 것입니다. 같은 객체를 재사용하면 두 번째 호출에서 앞부분을 건너뛰어 결과가 달라집니다. 이 도구는 매번 새로 만들어 그 문제가 없습니다.
이름 있는 그룹은 어떻게 쓰나요?
(?<이름>패턴) 형태로 적으면 결과에서 이름으로 꺼낼 수 있습니다. 예를 들어 (?<year>\d{4})-(?<month>\d{2})처럼 쓰면 순서에 의존하지 않아 패턴을 고쳐도 코드가 깨지지 않습니다. 위 날짜 예시를 눌러 확인해 보세요.
한글은 어떻게 매칭하나요?
완성형 한글은 [가-힣] 범위로 잡습니다. 자음·모음 단독(ㄱ, ㅏ)은 [ㄱ-ㅎㅏ-ㅣ]로 따로 잡아야 합니다. \w는 한글을 포함하지 않는다는 점도 주의하세요. u 플래그를 켜면 이모지 같은 큰 문자를 한 글자로 다룹니다.
이메일 검증 정규식을 그대로 써도 되나요?
여기 예시는 흔한 형태를 잡는 용도이며 완전한 검증이 아닙니다. RFC 규격을 모두 따르는 이메일 정규식은 수백 자에 이르고 실무에서는 잘 쓰지 않습니다. 형식은 느슨하게 확인하고 실제 유효성은 인증 메일 발송으로 확인하는 방식이 일반적입니다.

이 도구는 브라우저 안에서만 계산하며 입력값을 서버로 보내지 않습니다. 분류: 개발 · 마지막 수정 2026-09-08

함께 쓰면 좋은 도구

온라인 도구 전체 보기