정규식 테스트
JavaScript 정규표현식의 매치와 캡처 그룹을 바로 확인하고, 입력하던 패턴과 테스트 문장도 이 브라우저에서 이어서 작업합니다.
- 더 적은 클릭, 키보드 지원
플래그
매치 하이라이트
Regex can find words in English and 한글 text. Try 42 or hello@example.com.
매치 상세
- 매치 1인덱스 0–5
Regex
캡처 그룹$1: Regex이름 있는 그룹word: Regex - 매치 2인덱스 6–9
can
캡처 그룹$1: can이름 있는 그룹word: can - 매치 3인덱스 10–14
find
캡처 그룹$1: find이름 있는 그룹word: find - 매치 4인덱스 15–20
words
캡처 그룹$1: words이름 있는 그룹word: words - 매치 5인덱스 21–23
in
캡처 그룹$1: in이름 있는 그룹word: in - 매치 6인덱스 24–31
English
캡처 그룹$1: English이름 있는 그룹word: English - 매치 7인덱스 32–35
and
캡처 그룹$1: and이름 있는 그룹word: and - 매치 8인덱스 39–43
text
캡처 그룹$1: text이름 있는 그룹word: text - 매치 9인덱스 45–48
Try
캡처 그룹$1: Try이름 있는 그룹word: Try - 매치 10인덱스 52–54
or
캡처 그룹$1: or이름 있는 그룹word: or - 매치 11인덱스 55–60
hello
캡처 그룹$1: hello이름 있는 그룹word: hello - 매치 12인덱스 61–68
example
캡처 그룹$1: example이름 있는 그룹word: example - 매치 13인덱스 69–72
com
캡처 그룹$1: com이름 있는 그룹word: com
패턴 설명
(?<word>— 그룹\b— 이스케이프[A-Za-z]— 문자 클래스+— 수량자\b— 이스케이프
Ctrl/⌘ Shift L 패턴으로 이동
사용 방법
- 정규식 입력칸에 앞뒤 슬래시 없이 JavaScript 패턴 본문을 입력합니다.
- g(전체 검색), u(유니코드) 등 코드에서 쓰는 플래그를 켭니다.
- 테스트 문자열을 붙여넣고 매치 하이라이트, UTF-16 인덱스, 캡처 그룹을 확인합니다.
- 필요하면 $&, $1, $<name> 등을 사용해 치환 결과를 미리 봅니다.
- 토큰 설명을 읽고 의도한 결과가 맞으면 치환 결과를 복사합니다.
이 도구는 JavaScript 정규식 기준으로 동작합니다
입력한 패턴은 브라우저의 JavaScript RegExp 생성자에 그대로 전달됩니다. 따라서 문법과 플래그는 PCRE, Python, .NET이 아니라 ECMAScript 기준입니다. 다른 엔진에서만 가능한 inline modifier, possessive quantifier, 일부 escape는 JavaScript 코드에서는 동작하지 않을 수 있습니다. 화면의 여섯 플래그는 g(전체), i(대소문자 무시), m(여러 줄), s(dotAll), u(유니코드), y(sticky)에 해당합니다.
각 결과에 보이는 인덱스는 JavaScript의 RegExpExecArray.index와 같은 UTF-16 code unit 위치입니다. 😀처럼 화면에서는 한 글자로 보이는 이모지는 UTF-16에서 두 code unit을 차지하므로, 앞에 보이는 글자 수보다 인덱스가 클 수 있습니다. 브라우저나 Node.js 코드의 위치 값과 맞춰 볼 때 정상적인 동작입니다.
매치, 캡처 그룹, 치환 문법
괄호는 번호 캡처 그룹을 만듭니다. /(\d{4})-(\d{2})-(\d{2})/는 연도·월·일을 각각 $1, $2, $3으로 잡습니다. /(?<year>\d{4})/처럼 이름을 붙인 그룹은 치환 문자열에서 $<year>로 다시 쓸 수 있습니다. $&는 매치 전체, $$는 달러 기호 하나를 넣습니다. g 플래그가 켜지면 String.replace가 모든 매치를 바꾸고, 꺼져 있으면 첫 매치만 바꿉니다.
하이라이트로 예상보다 넓게 잡힌 부분을 먼저 찾고, 매치 상세의 캡처 값을 보며 추출 규칙이 맞는지 확인하세요. 미리보기는 JavaScript String.prototype.replace와 같은 규칙으로 바뀌므로 실제 코드에 검색·치환을 넣기 전에 점검하기 좋습니다.
작게 시작해 정규식을 확장하세요
처음에는 정확한 문자 하나를 매치시키고, 문자 클래스·수량자·앵커·그룹을 하나씩 더하는 방식이 안전합니다. 유효성 검사에는 앵커가 중요합니다. ^\d+$는 문자열 전체가 숫자인지 검사하지만, \d+는 문장 어딘가의 숫자만 찾아냅니다. .*는 가능한 길게 잡고, .*?는 가능한 짧게 잡는 lazy 형태입니다.
(a+)+나 (\w+\s?)*처럼 반복 안에 모호한 반복이 있는 패턴은 특정 입력에서 매우 오래 걸릴 수 있습니다. 실행을 시작한 JavaScript RegExp는 중간에 취소할 수 없으므로 짧은 예시부터 테스트하고 입력을 조금씩 늘리세요. 이 도구는 너무 넓은 g 패턴이 결과 화면을 과도하게 만들지 않도록 매치 상세를 최대 1,000개까지 표시합니다.
자주 묻는 질문
어떤 정규식 문법을 테스트하나요?
이 도구는 브라우저에 내장된 JavaScript(ECMAScript) RegExp 엔진을 사용합니다. g, i, m, s, u, y 플래그와 치환 결과는 JavaScript와 최신 브라우저 기준이며 PCRE, Python re, Java, .NET 정규식과는 일부 문법이 다를 수 있습니다.
보이는 글자 수와 매치 인덱스가 왜 다른가요?
JavaScript 정규식의 인덱스는 UTF-16 code unit 기준입니다. 대부분의 글자는 1개이지만 😀 같은 이모지는 2개를 차지합니다. 이모지 뒤의 매치는 사람이 세는 글자 위치보다 1 크게 나올 수 있으며, 이는 RegExpExecArray.index가 반환하는 정상적인 위치 값입니다.
g 플래그는 무엇을 바꾸나요?
g(global) 플래그를 켜면 JavaScript가 첫 매치 뒤에도 계속 찾아 이 도구는 최대 1,000개까지 표시하고 String.replace도 모든 매치를 바꿉니다. g가 없으면 뒤에 같은 문자열이 더 있어도 JavaScript는 첫 매치 하나만 반환하고 치환합니다.
치환 문자열에서 $1이나 이름 있는 그룹을 쓸 수 있나요?
네. JavaScript 치환 문자열에서 $&는 매치 전체, $1부터 $99는 번호 캡처 그룹, $<name>은 이름 있는 캡처 그룹, $$는 달러 기호 하나를 뜻합니다. 이 도구의 미리보기는 String.prototype.replace 규칙으로 즉시 결과를 보여줍니다.
입력한 패턴이나 테스트 문자열이 서버로 전송되나요?
아니요. 패턴, 테스트 문자열, 플래그, 치환 결과는 모두 브라우저에서 처리합니다. 새로고침 뒤에도 이어서 작업할 수 있도록 현재 작업 상태만 이 브라우저의 local storage에 저장하며 서버로 전송하지 않습니다.
관련 도구
2026-10-15 업데이트