한국어

정규식 테스트기 — 자바스크립트 정규표현식 매치·치환 미리보기

자바스크립트 정규식 테스트 (플래그, 매치 하이라이트, 그룹 표, 치환 미리보기)

브라우저에서 처리 · 서버로 전송되지 않음

플래그

소개

정규식은 짧게 쓸수록 실수하기 쉽습니다. 이 도구는 패턴과 텍스트를 넣는 즉시 어디가 일치하는지 색으로 표시하고, 각 매치의 위치와 캡처 그룹 값을 표로 보여 줍니다. 치환 문자열을 넣으면 바뀐 결과를 미리 볼 수 있습니다.

사용법

  1. 정규식 패턴을 슬래시 없이 입력합니다. 코드에서 /패턴/gi처럼 복사한 것을 붙여 넣으면 슬래시를 빼고 플래그를 따로 골라 줍니다. 예: (\d+)-(?<word>[a-z]+).
  2. 필요한 플래그를 체크합니다. 기본값은 모든 매치를 찾는 g입니다.
  3. 테스트할 텍스트를 붙여 넣으면 일치한 부분이 하이라이트됩니다. 표에서 각 매치의 위치와 그룹을 확인하세요.
  4. 치환 칸에 $1, $<이름>, $& 같은 표기를 쓰면 치환 결과를 볼 수 있고 복사할 수 있습니다. 매치를 지우기만 하려면 치환 결과 보기를 켜고 치환 칸을 비워 두세요.

기준

  • 플래그: g 전체 검색, i 대소문자 무시, m 줄마다 ^·$ 적용, s 점(.)이 줄바꿈 포함, u 유니코드 모드, y 현재 위치에서만 일치(sticky).
  • g가 없으면 첫 번째 매치만 찾습니다. g와 y를 함께 쓰면 끊김 없이 이어지는 매치만 찾습니다.
  • 빈 매치(a*, ^, 빈 패턴)는 위치를 한 글자 앞으로 옮기며 계속 찾고, u 플래그에서는 코드포인트 단위로 이동합니다.
  • 치환 표기는 String.prototype.replace와 같습니다: $$, $&, $`, $', $1~$99, $<이름>.
  • 보호 장치: 매치 1,000개, 텍스트 200,000자, 패턴 5,000자 제한과 1.5초 실행 제한이 있습니다. 시간 제한은 작업을 Web Worker에서 돌린 뒤 종료하는 방식이며 이 때문에 메인 화면은 멈추지 않습니다.

예시

패턴 플래그 텍스트 결과
\d+ g a1 b22 c333 1, 22, 333
[가-힣]+ g abc 한글 test 테스트 한글, 테스트
a* g baac 위치 0, 1(aa), 3, 4에서 매치 4개
(?<y>\d{4})-(\d{2}) 2024-05 그룹 1 y=2024, 그룹 2=05

참고

  • 한글 범위는 [가-힣]로 완성형 음절을 잡을 수 있고, 이모지는 u 플래그와 \p{Emoji_Presentation}을 함께 쓰면 잡힙니다.
  • 입력한 패턴과 텍스트는 서버로 전송되지 않습니다.

자주 묻는 질문

어떤 정규식 문법을 쓰나요?

브라우저의 자바스크립트(ECMAScript) 정규식 엔진을 그대로 씁니다. 그래서 파이썬, PCRE, 자바와 일부 문법이 다릅니다. 예를 들어 소유 한정자와 인라인 플래그 (?i)는 지원하지 않고, 이름 있는 그룹은 (?<이름>...) 형식입니다.

패턴이 너무 오래 걸려 멈추면 어떻게 되나요?

매칭은 별도 Web Worker에서 실행되고 1.5초를 넘으면 강제로 종료합니다. (a+)+$ 같은 중첩 반복은 입력이 조금만 길어져도 재앙적 역추적으로 기하급수적으로 느려질 수 있기 때문입니다. 종료되면 안내 문구가 나오고 화면은 멈추지 않습니다.

매치 개수나 텍스트 길이에 제한이 있나요?

매치는 처음 1,000개까지, 텍스트는 200,000자까지, 패턴은 5,000자까지 처리합니다. 한도를 넘으면 잘라서 보여 주거나 안내만 표시합니다.

빈 문자열에 일치하는 패턴은 무한 루프가 되지 않나요?

빈 매치가 나오면 다음 검색 위치(lastIndex)를 한 글자 앞으로 옮겨 계속 진행하므로 끝나지 않는 일은 없습니다. u 플래그를 켜면 이모지 같은 보충 문자를 쪼개지 않고 한 문자 단위로 움직입니다.

필요한 도구가 있나요?