일치 항목

입력한 텍스트에 자바스크립트 정규식을 바로 적용해 일치하는 부분을 강조하고, 위치와 캡처 그룹, 이름 있는 그룹을 목록으로 보여 주는 정규식 테스트 도구입니다. 치환 탭에서는 $1, $<name>을 쓴 치환 결과를 실시간으로 확인할 수 있습니다. Node.js, 크롬과 같은 브라우저 내장 ECMAScript 엔진을 쓰며, 폭주하는 패턴은 1초 뒤에 멈춥니다.

사용법

  1. 슬래시 사이에 패턴을 입력하거나 /패턴/플래그 형태를 통째로 붙여 넣으세요. 이메일이나 IPv4 같은 자주 쓰는 패턴을 누르면 검증된 패턴에서 시작합니다.
  2. 플래그를 켜고 끄세요. g는 모든 일치 항목, i는 대소문자 무시, m은 ^와 $를 줄마다 적용, s는 점이 줄바꿈과도 일치하게 합니다.
  3. 테스트 텍스트를 입력하거나 붙여 넣으세요. 입력하는 대로 일치 부분이 강조되고 아래에 위치와 캡처 그룹이 나옵니다.
  4. 바꾸기로 전환해 $1, $<name>, $&로 바꿀 내용을 쓰면 결과가 바로 나옵니다. 일치 항목, 그룹, 결과를 누르면 복사됩니다.
  • 브라우저의 자바스크립트(ECMAScript) 정규식 엔진을 씁니다. Node.js, Chrome, Deno와 같은 엔진이며 후방 탐색, 이름 있는 그룹, \p{…} 유니코드 클래스를 지원합니다.
  • 일치 검사는 백그라운드 워커에서 실행되고 1초가 지나면 멈추므로, 치명적 백트래킹이 있는 패턴도 페이지를 멈추지 않고 오류를 보여 줍니다.
  • 바꿀 내용에서 \n과 \t는 줄바꿈과 탭을 넣습니다. $$는 달러 기호 하나를 넣습니다.
  • d 플래그를 켜면 그룹마다 시작과 끝 인덱스를 볼 수 있습니다.
  • 공유 링크에는 패턴과 플래그만 들어가고 테스트 텍스트는 들어가지 않습니다.

결과를 바꾸는 플래그

g는 첫 번째뿐 아니라 모든 일치를 찾고, i는 대소문자를 무시하며, m은 ^와 $가 줄마다 작동하게 하고, s는 점이 줄바꿈과도 일치하게 합니다. u는 유니코드 전체와 \p{…} 클래스를, y는 lastIndex 위치에서만 찾기를, d는 그룹마다 시작·끝 위치를 돌려줍니다. 결과가 하나만 나온다면 대부분 g를 빠뜨린 경우입니다.

패턴 읽는 법

\d는 숫자, \w는 영문자·숫자·밑줄, \s는 공백, \b는 단어 경계입니다. 수량자는 바로 앞 요소를 반복합니다. *는 0번 이상, +는 1번 이상, ?는 0번 또는 1번, {2,4}는 2~4번입니다. 수량자 뒤에 ?를 붙이면 최소 일치가 되어 <.+?>는 첫 번째 >에서 멈춥니다. 괄호는 그룹을 만들고, (?<year>\d{4})는 이름 있는 그룹, (?:…)는 캡처하지 않는 그룹입니다. \w는 한글과 일치하지 않으니 한글은 [가-힣]이나 u 플래그와 \p{Script=Hangul}을 쓰세요.

전방 탐색 (?=…), (?!…)과 후방 탐색 (?<=…), (?<!…)은 앞뒤 내용을 소비하지 않고 조건만 확인합니다. 예를 들어 \d+(?= USD)는 120 USD의 120과는 일치하지만 120 EUR과는 일치하지 않습니다.

느린 패턴 피하기

(a+)+나 (.*)*처럼 수량자가 겹친 패턴은 거의 일치하는 텍스트에서 백트래킹이 기하급수적으로 늘어 서버를 멈추게 할 수 있습니다. 이를 ReDoS라고 합니다. 이 도구는 검색을 백그라운드에서 최대 1초만 실행하므로 화면이 멈추는 대신 오류가 표시됩니다. .* 대신 [^,]* 같은 구체적인 클래스를 쓰고, 값 전체를 검사할 때는 ^와 $로 고정하세요.

자주 묻는 질문

이 정규식 테스트 도구는 어떤 정규표현식 문법을 쓰나요?

브라우저에 내장된 자바스크립트(ECMAScript) 정규식입니다. Node.js, Deno, TypeScript와 동작이 같습니다. 대부분의 문법은 PCRE, 파이썬, 자바와 같지만 소유 수량자나 원자 그룹 같은 일부 기능은 다릅니다.

정규식이 한 개만 찾는 이유는 무엇인가요?

g(전역) 플래그가 꺼져 있기 때문입니다. g가 없으면 자바스크립트는 첫 번째 일치에서 멈춥니다. g를 켜면 모든 일치가 강조되고 목록에 나옵니다.

치환에서 캡처 그룹은 어떻게 쓰나요?

번호 그룹은 $1, $2처럼, 이름 있는 그룹은 $<name>, 일치 전체는 $&로 씁니다. 달러 기호 자체를 넣으려면 $$를 쓰세요.

점이나 괄호 문자 자체를 찾으려면 어떻게 하나요?

역슬래시로 이스케이프합니다. \.는 마침표, \(는 괄호, \[는 대괄호와 일치합니다. 문자 클래스 안에서는 대부분의 기호가 그대로의 의미라서 [.]도 마침표와 일치합니다.

정규식으로 이메일 주소를 완벽하게 검증할 수 있나요?

없습니다. RFC 5321, 5322의 전체 규칙은 너무 넓고 복잡해서 실용적인 패턴으로 담을 수 없습니다. 간단한 정규식으로 오타만 걸러 내고, 실제로 메일을 보내 주소를 확인하세요.

테스트 텍스트가 어딘가로 전송되나요?

아니요. 검색은 브라우저 안에서 이루어집니다. 공유 링크에는 패턴과 플래그만 들어가고 텍스트는 들어가지 않습니다.

함께 쓰는 도구

사용법

순서

  1. 슬래시 사이에 패턴을 입력하거나 /패턴/플래그 형태를 통째로 붙여 넣으세요. 이메일이나 IPv4 같은 자주 쓰는 패턴을 누르면 검증된 패턴에서 시작합니다.
  2. 플래그를 켜고 끄세요. g는 모든 일치 항목, i는 대소문자 무시, m은 ^와 $를 줄마다 적용, s는 점이 줄바꿈과도 일치하게 합니다.
  3. 테스트 텍스트를 입력하거나 붙여 넣으세요. 입력하는 대로 일치 부분이 강조되고 아래에 위치와 캡처 그룹이 나옵니다.
  4. 바꾸기로 전환해 $1, $<name>, $&로 바꿀 내용을 쓰면 결과가 바로 나옵니다. 일치 항목, 그룹, 결과를 누르면 복사됩니다.

단축키

Enter패턴에서 테스트 텍스트로 이동Ctrl + Enter모든 일치 항목이나 바꾸기 결과 복사

알아두면 좋은 점

브라우저 안에서 동작합니다. 파일과 입력한 내용은 기기 밖으로 나가지 않습니다.