정규식 테스트 — 온라인 JavaScript 정규표현식 테스터
JavaScript 정규표현식을 온라인으로 테스트하세요. 실시간 매치 강조, 캡처 그룹과 이름 있는 그룹, 모든 플래그, 치환 미리 보기 지원. 느린 패턴은 1초 후 중단됩니다.
브라우저에서 변환 · 가입 불필요
치트 시트
.- 줄바꿈을 제외한 모든 문자(s 플래그를 쓰면 줄바꿈 포함)
\d \w \s- 숫자, 단어 문자 [A-Za-z0-9_], 공백 문자
\D \W \S- 숫자 아님, 단어 문자 아님, 공백 아님
[abc] [^abc]- a, b, c 중 하나 / a, b, c를 제외한 모든 문자
[a-z]- a부터 z까지의 모든 문자
^ $- 입력의 시작 / 끝(m 플래그에서는 각 줄의 시작 / 끝)
\b- 단어 경계
* + ?- 0번 이상, 1번 이상, 0번 또는 1번
{2,5}- 2–5번({3}은 정확히 3번, {2,}는 2번 이상)
*? +?- 게으른(lazy) 버전: 가능한 한 적게 매치
(abc)- 캡처 그룹
(?<name>abc)- 이름 있는 캡처 그룹
(?:abc)- 캡처하지 않는 그룹
\1 \k<name>- 그룹 1 / 이름 있는 그룹이 매치한 내용을 반복
a|b- a 또는 b
(?=a) (?!a)- 뒤에 a가 옴 / 뒤에 a가 오지 않음
(?<=a) (?<!a)- 앞에 a가 있음 / 앞에 a가 없음
\p{L}- 모든 언어의 모든 글자(u 또는 v 플래그 필요)
브라우저의 JavaScript(ECMAScript) 정규식 엔진을 사용하므로 결과가 JavaScript 코드와 같습니다. PCRE, Python, Java 같은 다른 엔진은 일부 문법이 다릅니다. 매칭은 백그라운드 Worker에서 실행되며, 치명적인 백트래킹으로부터 페이지를 보호하기 위해 1초 후 중단됩니다.
사용 방법
- 정규표현식을 입력하고 필요한 플래그를 체크합니다(g는 모든 매치를 찾음).
- 테스트할 텍스트를 붙여 넣으세요. 매치가 강조되고 인덱스와 캡처 그룹과 함께 목록으로 표시됩니다.
- ‘치환’을 켜면 $1이나 $<name> 참조를 쓴 String.replace 결과를 미리 볼 수 있습니다.
예제
패턴: (?<user>\w+)@(\w+)\.com 플래그: g 텍스트: [email protected], [email protected] 매치: [email protected](user = alice, 2 = example), [email protected] $<user> at $2로 치환 → alice at example, bob at test
세부 정보 및 제한 사항
패턴은 브라우저에 내장된 JavaScript RegExp 엔진으로 실행되므로 후방 탐색, 이름 있는 그룹, 유니코드 속성 이스케이프, d 플래그가 코드에서와 똑같이 동작합니다. v 플래그는 브라우저가 지원할 때만 표시됩니다.
매칭은 기기의 Web Worker에서 이루어지며 아무것도 업로드되지 않습니다. 한 번 실행은 약 1초 후 중단되며, 매치는 최대 1,000개까지 표시됩니다.
FAQ
정규식이 왜 매치를 하나만 찾나요?
JavaScript에서 g(전역) 플래그가 없는 정규식은 첫 번째 매치에서 멈춥니다. g를 체크하면 모든 매치를 찾으며, 이 테스터가 모두 목록으로 보여 줍니다.
치명적인 백트래킹이란?
(a+)+$나 (.*)* 같은 일부 패턴은 거의 일치하는 텍스트에서 지수적으로 오래 걸릴 수 있습니다. 이 도구는 정규식을 별도의 Worker에서 실행하고 1초 후 중단하므로, 페이지는 응답성을 유지하고 대신 오류를 표시합니다.
여기서 테스트한 정규식이 Python이나 PHP에서도 동작하나요?
대개는 되지만 항상 그렇지는 않습니다. 이 테스터는 JavaScript 엔진을 사용합니다. Python, PHP(PCRE), Java는 이름 있는 그룹, 후방 탐색, 플래그 같은 기능과 문법이 다르므로, 이런 기능에 의존하는 패턴은 다시 확인하세요.
관련 도구
형식 참고 자료
도구 페이지 업데이트: