tigtools

정규식 테스터

패턴과 텍스트를 입력하면 모든 일치 항목이 위치 및 캡처 그룹과 함께 강조 표시됩니다. 브라우저의 JavaScript 정규식 엔진을 사용합니다.

브라우저에서 실행 가입 불필요

플래그

번호가 지정된 그룹에는 $1, $2 …, 이름이 지정된 그룹에는 $<name>, 전체 일치 항목에는 $&, 달러 기호에는 $$를 사용하세요.

사용 방법

  1. 양쪽에 슬래시를 붙이지 말고 패턴 필드에 정규식을 입력하세요.
  2. 필요한 플래그를 선택하세요. g(전역)를 켜면 첫 번째 항목뿐 아니라 모든 일치 항목을 찾습니다.
  3. 검색할 텍스트를 붙여 넣으세요. 일치 항목은 강조 표시되고, 각 항목의 인덱스와 캡처 그룹이 목록에 표시됩니다.
  4. 선택 사항으로 $2-$1 같은 대체 문자열을 입력해 String.replace의 결과를 미리 볼 수 있습니다.

작동 방식

이 테스터는 브라우저에 내장된 RegExp 객체로 패턴을 실행하므로, 결과는 해당 브라우저의 JavaScript(ECMAScript) 코드에서 얻는 결과와 정확히 같습니다. 다른 언어는 서로 다른 정규식 문법을 사용합니다. PCRE(PHP), Python의 re 모듈, Java, .NET은 JavaScript에 없는 기능(예: 점유 수량자(a++), 원자 그룹((?>…)), (?i) 같은 인라인 수정자, 재귀)을 지원하며, \A 및 \Z 앵커 같은 세부 동작도 다릅니다. 해당 언어에서 패턴을 사용하기 전에 그 언어에서 테스트하세요. 룩비하인드((?<=…)), 이름 있는 그룹((?<name>…)), 유니코드 속성 이스케이프(u 플래그를 사용한 \p{L})는 현재 모든 브라우저에서 작동합니다.

g 또는 y 플래그가 없으면 RegExp.exec와 마찬가지로 첫 번째 일치 항목만 찾습니다. ^ 또는 \b처럼 길이가 0인 일치 항목도 목록에는 표시되지만 강조되지는 않습니다. 이런 항목을 찾은 뒤에는 String.matchAll과 마찬가지로 검색 위치를 문자 하나만큼 이동합니다(u 플래그 사용 시 코드 포인트 하나만큼 이동). 캡처 그룹은 번호로 표시하고, 이름이 정의된 경우 이름도 표시합니다. 일치에 참여하지 않은 그룹은 값이 없다고 표시하며, 이는 빈 문자열과 다릅니다.

긴 줄에서 일치 항목 없이 (a+)+$를 찾는 경우처럼 일부 패턴은 실패하는 데 지수 시간이 걸릴 수 있습니다(치명적인 역추적). 위험을 줄이기 위해 입력을 멈춘 직후부터 매칭을 시작하고, 텍스트의 처음 100,000자까지만 검색하며, 일치 항목은 최대 1,000개까지 수집합니다. 병적인 패턴은 여전히 잠시 동안 탭을 응답하지 않게 만들 수 있습니다. 그런 경우 패턴을 단순화하거나 텍스트를 줄이세요.

예시

날짜 추출

g 플래그를 켜고 “Due 2026-03-15, paid 2026-04-02”에 패턴 (\d{4})-(\d{2})-(\d{2})를 적용하면 두 개의 일치 항목을 찾습니다. 그룹 1은 연도입니다. $3.$2.$1로 바꾸면 텍스트가 “Due 15.03.2026, paid 02.04.2026”로 바뀝니다.

읽기 쉬운 코드를 위한 이름 있는 그룹

쿼리 문자열 a=1&b=two에 (?<key>\w+)=(?<value>[^&]*)를 적용하면 각 쌍의 key와 value가 표시됩니다. 이는 JavaScript에서 match.groups.key와 match.groups.value가 반환하는 값과 같습니다.

여러 줄에서 대소문자 구분 없이 검색

g, i, m 플래그와 함께 ^error:.*를 사용하면 Error:, ERROR: 또는 error:로 시작하는 로그의 모든 줄이 일치합니다. m을 사용하면 ^가 각 줄의 시작 위치와 일치하기 때문입니다.

자주 묻는 질문

Python, PHP 또는 Java에서도 정규식이 똑같이 작동하나요?

반드시 그런 것은 아닙니다. 이 도구는 JavaScript 엔진을 사용합니다. 기본 문법은 공통으로 쓰이지만 점유 수량자, 원자 그룹, (?i) 같은 인라인 플래그, 일부 이스케이프 시퀀스는 다른 정규식 문법에만 있으며, 몇몇 기능은 동작 방식도 다릅니다. 항상 사용하려는 언어에서 테스트하세요.

일치 항목이 하나만 표시되는 이유는 무엇인가요?

g(전역) 플래그가 꺼져 있습니다. 이 플래그가 없으면 JavaScript는 첫 번째 일치 항목만 반환합니다. 모두 찾으려면 g를 선택하세요.

패턴 앞뒤에 슬래시를 입력해야 하나요?

아니요. /\d+/g가 아니라 \d+처럼 패턴만 입력하고, 체크박스에서 플래그를 선택하세요. 코드에 복사할 수 있도록 결과 아래에 JavaScript 리터럴 형식이 표시됩니다.

패턴을 입력한 뒤 페이지가 느려진 이유는 무엇인가요?

(a+)+ 또는 (.*)* 같은 중첩 수량자는 일치 항목이 없을 때 엔진이 지수적으로 많은 경로를 시도하게 만들 수 있습니다. 예를 들어 .*를 [^,]*로 바꾸거나 앵커를 사용해 패턴을 더 구체적으로 만드세요. 영향을 줄이기 위해 테스터는 텍스트 길이를 100,000자로 제한합니다.

개인정보 보호

패턴과 텍스트는 브라우저의 JavaScript 엔진에서만 처리됩니다. 업로드하거나 저장하지 않으며 분석 데이터에도 포함되지 않습니다.