정규식을 시험하려면 어떻게 하나요?
패턴과 예시 텍스트를 입력하면 도구가 모든 일치를 강조하고 캡처 그룹을 나열하며, global·multiline·대소문자 무시 같은 플래그를 켜고 끌 수 있게 해 줍니다. 매칭은 JavaScript 자체 정규식 엔진으로 브라우저에서 돌기 때문에, 결과는 여러분의 코드가 보게 될 것과 정확히 같습니다.
전적으로 브라우저에서 실행 · 업로드 없음 · 계정 없음 · 워터마크 없음
- 패턴을 입력하고 원하는 플래그를 선택하세요.
- 대조할 예시 텍스트를 붙여넣으세요.
- 강조 표시를 확인하고 아래의 일치 목록을 읽으세요.
강조 표시
일치 항목
이 페이지가 할 수 있는 일
- 모든 일치를 실시간으로 강조
- 오프셋과 캡처 그룹을 포함한 일치 목록
- g, i, m, s, u 플래그 전환
- 잘못된 패턴은 조용히 실패하지 않고 알려 줌
이 도구를 써야 할 때
- JavaScript 정규식을 예시 문자열에 대조해 볼 때.
- 어떤 캡처 그룹과 플래그가 어떤 일치를 만드는지 볼 때.
- 프런트엔드 코드에 넣기 전에 패턴을 점검할 때.
다른 방법을 선택해야 할 때
- 패턴이 Python, PCRE, .NET, Java를 대상으로 할 때. 구문과 백트래킹 동작이 JavaScript의 RegExp와 다릅니다.
- 입력이 신뢰할 수 없고 패턴이 치명적으로 백트래킹할 수 있을 때. 시험이 메인 스레드에서 돌아 탭이 멈출 수 있습니다.
- 단계별 설명이나 벤치마킹, 타임아웃이 필요할 때.
다른 방법과 비교하면
regex101 같은 도구는 엔진을 바꾸고, 각 토큰을 설명하고, 타임아웃을 걸 수 있습니다. 이 페이지는 그런 보호 장치 없이 브라우저 자체 RegExp를 돌리므로 JavaScript에 충실한 대신 그 한계를 그대로 물려받습니다. 원자 그룹도, 점유 수량자도, 병적인 패턴에 대한 방어도 없습니다. 일부러 나쁜 표현식은 탭을 닫을 때까지 멈춰 세울 수 있습니다.
당신의 파일은 어디로
어디로도 가지 않습니다. 이 페이지는 작업을 하는 코드를 불러오고, 그다음부터 당신이 여는 파일은 당신의 브라우저가 읽습니다. 업로드 단계도, 서버의 임시 사본도, 믿어야 할 정리 절차도 없습니다. 데이터는 네트워크를 한 번도 건너지 않으므로 나중에 지울 것도 남지 않습니다. 직접 확인할 수 있습니다. 도구가 실행되는 동안 브라우저의 네트워크 패널을 열어 아무 통신도 없는지 보세요.
이 도구에 대한 질문
- 제 패턴을 쓰자 페이지가 응답하지 않았습니다. 왜 그런가요?
- 치명적 백트래킹입니다. (a+)+b 같은 패턴을 긴 “a” 연속에 대면 엔진이 실패하는 방식을 지수적으로 시도합니다. 이 페이지는 일치 수에 상한을 두어 끝없이 치솟지 않게 하지만, 고집 센 일치 하나는 여전히 시간이 걸릴 수 있습니다. 중첩 수량자를 고쳐 엔진에 경로가 하나만 남게 하거나(예: a+b) ^나 $로 패턴을 고정하세요.
- 어떤 플래그를 켤 수 있나요?
- g는 첫 일치 대신 모든 일치를 찾고, i는 대소문자를 무시하며, m은 ^와 $가 줄바꿈에서도 일치하게 하고, s는 .이 줄바꿈도 일치하게 하며, u는 완전한 유니코드 모드를 켜서 \p{...} 속성 이스케이프와 기본 평면 밖 문자의 올바른 처리를 가능하게 합니다. 결과는 JavaScript 자체 엔진이 주는 것과 정확히 같아서 여러분의 코드와 일치합니다.
- 일치가 왜 몇천 건만 나열되나요?
- 모든 문자에 일치하는 패턴(예: 긴 문서에 global 플래그를 켠 .)이 수천 개 행을 만드는 동안 탭이 잠기지 않도록 목록에 상한을 두었습니다. 실제 시험 문자열에는 충분히 높은 상한이며, 여기에 걸리면 패턴을 좁히거나 예시를 줄이세요.