정규식 테스터 및 시각화 도구

무료 온라인 정규식 테스터 및 시각화 도구. JavaScript 정규식을 작성하고 대화형 다이어그램으로 그려지고 일반 영어로 설명되며 색상으로 구분된 캡처 그룹과 실시간으로 일치하는지 확인하세요. 코드 교체, 추출, 단위 테스트 및 내보내기가 필요하며 가입이 필요하지 않습니다.

Shehzad Munir에 의해 구축 및 유지 관리 ·

정규식 테스터 및 시각화 도구
Loading Loading Regex Tester
  • 개발자 도구
  • 무료 · 가입하지 않음
  • 브라우저에서 실행됩니다.
  • 14 기능
Share

패턴의 의미를 보여주는 정규식 테스터

한 곳에서 정규식을 테스트하고 디버깅하고 이해할 수 있습니다. 패턴을 입력하면 즉시 대화형 철도 다이어그램으로 그려지고 일반 영어로 토큰별로 설명되며 모든 일치 항목 및 캡처 그룹 색상이 강조 표시된 텍스트에 대해 실시간으로 실행됩니다. 교체, 추출, 분할, 단위 테스트 작성, 작업 코드를 9개 언어로 내보내고 치명적인 역추적에 대한 경고를 브라우저 내에서 모두 수행할 수 있습니다.

대부분의 정규식 테스터는 패턴이 일치하는지 여부만 알려줍니다. 이것은 또한 그 이유를 보여줍니다. 입력하면 정규 표현식이 구문 분석되어 철도 다이어그램(다이어그램을 통과하는 모든 경로가 패턴과 일치할 수 있는 문자열인 왼쪽에서 오른쪽 지도)으로 그려집니다. 상자에 마우스를 올리면 패턴에 일치하는 문자가 켜지고 일반 영어 설명이 해당 작품의 기능을 정확하게 알려줍니다. 패턴을 통해 텍스트 커서를 이동하면 다이어그램이 그 패턴을 따릅니다. 아래에서는 모든 일치 항목이 강조 표시되고 각 캡처 그룹이 고유한 색상으로 표시되어 자신의 테스트 텍스트에 대해 패턴이 실시간으로 실행되므로 일치 항목과 그 이유를 동시에 확인할 수 있습니다.

특징

  • 모든 패턴의 대화형 철도 다이어그램: 상자를 마우스로 가리키면 정규식에서 표시됩니다.
  • 모든 토큰, 그룹, 수량자 및 둘러보기에 대한 일반 영어 설명
  • 텍스트 내부에 색상으로 구분된 캡처 그룹을 사용한 라이브 매치 강조 표시
  • 일치하는 항목을 클릭하면 다이어그램에서 바로 각 그룹이 캡처한 내용을 확인할 수 있습니다.
  • 커서를 따라가는 구문 색상 패턴 편집기
  • 모든 JavaScript 플래그: g, i, m, s, u, v(유니코드 세트) 및 y
  • $1, $<name>, $& 및 강조된 이전/이후 미리보기로 교체
  • 템플릿, 고유/정렬, CSV 및 JSON 내보내기를 사용하여 일치 항목을 목록으로 추출합니다.
  • 정규식으로 텍스트를 분할하고 일치해야 하거나 일치하지 않아야 하는 단위 테스트
  • JavaScript, TypeScript, Python, PHP, Java, C#, Go, Rust 및 Ruby용 코드 내보내기
  • 호환성 표: Python, PCRE, Go 또는 Rust에서 어떤 기능이 중단되는지 확인하세요.
  • ReDoS 가드: 워커에서 실행하고 런어웨이 패턴을 중지하며 중첩 수량자에 플래그를 지정합니다.
  • 40개의 테스트된 패턴 라이브러리와 예제에서 생성 빌더
  • 클릭 가능한 치트시트, 저장된 패턴 및 공유 가능한 링크, 브라우저에서 100%

정규식 테스터 및 시각화 도구 사용 방법

  1. 1

    패턴을 입력하세요

    정규식을 입력하거나(/pattern/flags를 붙여넣으면 자동으로 분할됨) 패턴 라이브러리에서 하나를 선택하거나 빌드 탭의 예제에서 하나를 생성하세요.

  2. 2

    플래그 전환

    일치 동작을 변경하려면 g, i, m, s, u, v 또는 y를 클릭하세요. 깃발을 가리키면 무슨 일을 하는지 볼 수 있습니다.

  3. 3

    시각적 다이어그램 읽기

    철도 다이어그램의 아무 상자나 마우스로 가리키거나 클릭하거나 설명으로 전환하여 패턴의 각 부분이 무엇을 의미하는지 확인하세요.

  4. 4

    텍스트에 대해 테스트

    테스트 문자열에 텍스트를 붙여넣습니다. 경기 및 캡처 그룹이 실시간으로 하이라이트됩니다. 일치하는 항목을 클릭하면 다이어그램에서 각 그룹의 값을 볼 수 있습니다.

  5. 5

    교체, 추출 또는 테스트

    바꾸기, 추출, 분할 및 단위 테스트를 사용하여 패턴이 필요한 것을 정확하게 수행하는지 확인하세요.

  6. 6

    내보내기 또는 공유

    코드 탭에서 해당 언어에 대한 작업 코드를 복사하거나, 다이어그램을 SVG/PNG로 다운로드하거나, 공유 링크를 복사하세요.

일반적인 사용 사례

  • 상속받은 복잡한 정규식을 한 번에 하나의 다이어그램 상자로 이해하세요.
  • 정규식이 데이터와 일치하지 않는 이유 디버그
  • 배송하기 전에 이메일, URL, 전화 또는 비밀번호 패턴을 확인하세요.
  • 명명된 캡처 그룹을 사용하여 로그 줄에서 필드 추출
  • 그룹 참조로 찾기 및 바꾸기를 만들고 미리 봅니다.
  • Python, PHP, Go 또는 Java로 JavaScript 정규식 포팅
  • ReDoS(재난적 역추적) 패턴 확인
  • 시각적 설명을 통해 정규식을 가르치거나 학습합니다.

상세안내

정규식 철도 다이어그램을 읽는 방법

철도(구문) 다이어그램은 기차 선로처럼 읽혀집니다. 왼쪽 점에서 시작하여 끝까지 경로를 따라가면 통과하는 문자가 정규식이 허용하는 문자열을 형성합니다. 분기는 대안을 의미하고, 아래로 반복되는 트랙은 반복을 의미하며, 위의 상자를 우회하는 트랙은 부분이 선택 사항임을 의미합니다. 색상이 있는 프레임은 캡처 그룹(강조 표시된 일치 항목에 동일한 색상이 사용됨)이고 점선 프레임은 텍스트를 사용하지 않고 확인하는 둘러보기이며 알약 모양의 상자는 문자가 아닌 위치와 일치하는 앵커입니다. 결과에서 일치하는 항목을 클릭하면 각 그룹 프레임에 캡처된 정확한 값이 표시됩니다. 해당 그룹을 건너뛴 경우 '일치 없음'이 표시됩니다.

다이어그램에서정규식 구문의미
인용된 텍스트가 있는 상자알파벳 \. \N이 정확한 문자
상자 목록 '다음 중 하나:'[a-z0-9_]세트의 단일 문자
상자 목록 '다음 중 없음:'[^\s@]세트에 포함되지 않은 모든 단일 문자
녹색 상자(숫자, 단어 문자…)\d \w \s .문자 클래스 속기
알약 모양의 상자^ $ \b앵커: 캐릭터가 아닌 위치
분기로 분할 추적고양이|개대안
아래에 트랙 루프가 있음+ * {2,5}반복(레이블에 횟수가 표시됨)
위의 트랙 우회? * {0,3}해당 부분은 선택 사항입니다.
점선 루프+? *?게으른: 가능한 한 적은 횟수로 반복합니다.
컬러 프레임 '#1 이름'(…) (?<이름>…)왼쪽에서 오른쪽으로 번호가 매겨진 캡처 그룹
점선 프레임 '뒤에:'(?=…) (?!…) (?<=…)미리보기 / 뒤돌아보기

정규식 치트 시트: 매일 사용하게 될 구문

테스터 위에 내장된 치트시트를 열고 토큰을 클릭하여 커서에 삽입하세요. 다음은 거의 모든 패턴의 구성 요소입니다.

토큰성냥예
\d숫자 0-9\d{4}는 2026년과 일치합니다.
\w문자, 숫자 또는 밑줄\w+는 user_42와 일치합니다.
\s공백(공백, 탭, 줄 바꿈)a\sb는 'a b'와 일치합니다.
.줄 바꿈을 제외한 모든 문자a.c는 abc, a-c와 일치합니다.
[abc] / [^abc]나열된 문자 중 하나/없음[aeiou]는 모음과 일치합니다.
^ 및 $문자열(또는 m이 있는 줄)의 시작과 끝^\d+$는 숫자만 가능합니다.
\b단어 경계\bcat\b는 '연결'을 건너뜁니다.
* + ?0+, 1+ 또는 0-1 반복colou?r은 색상, 색상과 일치합니다.
{n,m}n~m 반복 사이\d{2,4}
(…) 그리고 (?<이름>…)캡처 그룹 / 명명된 그룹(?<연도>\d{4})
(?:…)캡처하지 않고 그룹화(?:ab)+
\1, \k<이름>이전 그룹과 동일한 텍스트(\w)\1은 'll'과 일치합니다.
(?=…) (?!…)뒤따르는 / 뒤따르지 않는\d+(?=px)
(?<=…) (?<!…)앞에 있음/앞에 없음(?<=\$)\d+

정규식 플래그 설명

플래그는 전체 패턴의 동작 방식을 변경합니다. 한 번의 클릭으로 전환합니다. 깃발을 가리키면 무슨 일을 하는지 볼 수 있습니다.

깃발이름효과
g글로벌처음에 멈추는 대신 모든 일치 항목을 찾으세요.
i대소문자 무시문자는 대문자 또는 소문자로 일치합니다.
m여러 줄^ 및 $는 모든 줄의 시작/끝에서 일치합니다.
s도트올. 줄 바꿈도 일치합니다.
u유니코드이모티콘과 아스트랄 문자를 하나의 문자로 취급합니다. \p{…} 활성화
v유니코드 세트당신이 하는 모든 것, 그리고 [\p{L}--[a-z]] 같은 집합 연산
y어려운각 경기는 이전 경기가 끝난 지점에서 정확히 시작되어야 합니다.

한 곳에서 교체, 추출, 분할 및 단위 테스트

$1, $<name>, $& 및 $$ 토큰을 사용하여 찾기 및 바꾸기 규칙을 작성하려면 바꾸기로 전환하세요. 결과는 삽입된 모든 부분을 강조 표시하므로 실제 데이터에서 실행하기 전에 확인할 수 있습니다. Extract는 고유한 정렬 옵션과 스프레드시트용 CSV 또는 JSON 내보내기 기능을 갖춘 템플릿(예: 두 그룹을 교환하려면 $2, $1)을 사용하여 모든 일치 항목을 목록으로 변환합니다. Split은 캡처된 구분 기호를 포함하여 String.split()이 반환하는 내용을 정확하게 보여줍니다. 단위 테스트를 통해 동작을 고정할 수 있습니다. 일치해야 하는 문자열, 완전히 일치해야 하는 문자열, 일치하지 않아야 하는 문자열을 추가하고 키를 누를 때마다 통과/실패 횟수가 업데이트되므로 패턴을 조금만 변경해도 이미 수정한 사례가 조용히 깨지는 일이 없습니다.

텍스트에서 모든 이메일 주소를 추출하세요두 가지 버전의 텍스트를 나란히 비교URL 쿼리 문자열 인코딩 또는 디코딩

ReDoS(재난적 역추적) 및 이 테스터가 사용자를 보호하는 방법

(a+)+$ 또는 (\w+\s?)*$와 같은 일부 패턴은 기하급수적으로 다양한 방식으로 반복 간에 분할될 수 있습니다. 입력이 거의 일치하면 엔진은 모든 조합을 시도하고 브라우저 탭을 정지시키거나 서버를 다운시킬 수 있습니다. 이는 ReDoS(정규식 서비스 거부)로 알려진 취약점입니다. 이 테스터는 2초 제한으로 별도의 웹 작업자에서 모든 패턴을 실행합니다. 엔진이 멈추면 엔진이 중지되고 페이지가 정지되는 대신 명확한 경고가 표시됩니다. 또한 내장된 린터는 도메인 이름의 이스케이프 처리되지 않은 점, [A-z] 범위 및 빈 대안과 같은 기타 일반적인 실수와 함께 배송하기 전에 위험한 모양(내부 부분도 반복되는 반복 그룹)에 플래그를 표시합니다.

Python, PHP, Java, C#, Go, Rust 및 Ruby에서 동일한 정규식을 사용합니다.

테스터는 브라우저의 자체 JavaScript(ECMAScript) 정규식 엔진을 실행하므로 JavaScript, TypeScript 및 Node.js에 대한 결과가 정확합니다. 코드 탭은 패턴을 다른 8개 언어에 대해 바로 붙여넣을 수 있는 코드로 바꾸고 서로 다른 부분을 변환합니다. 명명된 그룹은 Python의 경우 (?P<name>…)가 되고, 플래그는 C#의 경우 RegexOptions가 되고, Go 및 Rust의 경우 인라인(?i)이 되며, 대체 토큰은 각 언어에 대해 다시 작성됩니다. 호환성 표에는 패턴에서 사용하는 모든 기능과 각 엔진이 이를 지원하는지 여부가 나열되어 있습니다.

특징자바스크립트파이썬 재PCRE / PHP자바/.NET이동 / 러스트
미리보기(?= )예예예예No
뒤돌아보기(?<= )모든 길이고정 길이고정/제한제한됨 / 임의No
역참조 \1예예예예No
명명된 그룹(?<n>…)(?P<n>…)(?<n>…)(?<n>…)(?P<n>…) / (?<n>…)
유니코드 \p{L}U 플래그와 함께아니요(정규식 모듈)예예 / 부분적부분적 / 예
\d는 ASCII가 아닌 숫자와 일치합니다.No예No아니오 / 예아니오 / 예

JSON에서 TypeScript 유형 생성cron 표현식 작성 및 설명

테스트된 패턴에서 시작하거나 예제에서 패턴 생성

패턴 라이브러리에는 이메일, URL, IPv4 및 IPv6, E.164 및 미국 전화번호, 강력한 비밀번호, UUID, 의미 체계 버전, 영국 우편번호, ISO 및 DD/MM/YYYY 날짜, 가격, 해시태그, @멘션, 마크다운 링크, HTML 태그, Apache/Nginx 로그 라인, 중복 단어 등의 샘플 텍스트가 포함된 40개의 기성 및 테스트된 표현식이 포함되어 있습니다. 데이터에서 시작하려면 몇 가지 예를 빌드에 붙여넣으세요. 생성기는 문자, 숫자 및 기호를 ^\d{4}-\d{2}-\d{2}$와 같은 패턴으로 그룹화하여 구체화할 수 있습니다. 빌드에서는 리터럴 텍스트를 이스케이프할 수도 있으므로 . * ? ( ) $가 정확히 일치합니다.

비공개 디자인

모든 것이 브라우저의 JavaScript 엔진에서 로컬로 실행됩니다. 사용자가 입력하는 어떤 것도 서버에 업로드되거나 기록되거나 저장되지 않습니다. 마지막 세션은 이 브라우저에 보관되므로 중단한 부분부터 다시 시작할 수 있고 저장된 패턴은 장치에 유지되며 공유 링크는 URL 자체 내에 패턴, 텍스트 및 테스트를 전달하므로 우리 측에는 아무것도 저장되지 않습니다.

자주 묻는 질문

이 테스터는 어떤 정규식 버전을 사용합니까?

이는 플래그 g, i, m, s, u, v 및 y를 포함하여 Chrome, Firefox, Safari 및 Node.js에서 사용하는 것과 동일한 브라우저 고유의 JavaScript(ECMAScript) 정규식 엔진을 사용합니다. JavaScript 및 TypeScript에 대한 결과는 정확합니다. 코드 탭은 다른 언어의 패턴을 변환합니다.

캡처 그룹을 테스트할 수 있나요?

예. 모든 일치 항목에는 해당 위치와 번호가 매겨진 각 그룹의 값이 나열되고, 그룹은 텍스트 내에서 색상으로 강조 표시되며, 일치 항목을 클릭하면 각 그룹의 캡처된 값이 다이어그램에 바로 표시됩니다.

교체 미리보기는 어떻게 작동하나요?

번호가 매겨진 그룹의 경우 $1, $2, 명명된 그룹의 경우 $<name>, 전체 일치 항목의 경우 $&, 리터럴 달러 기호의 경우 $$를 사용하여 대체 항목을 입력합니다. 결과는 실시간으로 업데이트되고 String.replace()가 생성하는 것과 똑같이 삽입된 모든 부분을 강조 표시합니다.

내 테스트 데이터는 비공개인가요?

예. 정규식은 브라우저의 로컬 웹 작업자에서 완전히 실행됩니다. 패턴과 테스트 문자열은 절대 업로드되지 않습니다. 저장된 패턴은 이 브라우저에만 유지됩니다.

내 텍스트에 대해 정규식을 어떻게 테스트합니까?

패턴을 입력하고 샘플 텍스트를 붙여넣으세요. 일치 항목은 실시간으로 강조 표시되고 캡처 그룹이 표시되므로 정규 표현식이 일치하는 항목을 정확히 확인하고 즉시 수정할 수 있습니다.

내 정규식이 아무것도 일치하지 않는 이유는 무엇입니까?

일반적인 원인은 누락된 플래그(i의 경우 m so ^ 및 $는 한 줄당 작동하고 s so .는 줄 바꿈을 교차함), 이스케이프되지 않은 특수 문자 또는 다른 언어의 구문입니다. 다이어그램에 마우스를 올려 각 부분이 기대하는 바를 확인하고, 간단한 영어 설명을 읽고, 패턴 아래의 경고를 확인하세요.

JavaScript와 다른 버전에 대해 동일한 패턴을 테스트할 수 있나요?

일치는 JavaScript 엔진에서 실행되며 코드 탭은 Python, PHP, Java, C#, Go, Rust 및 Ruby에 대한 작업 코드를 생성하여 명명된 그룹, 플래그 및 대체 구문을 변환합니다. 호환성 표에는 뒤돌아보기나 역참조 등 각 엔진에서 지원되지 않는 기능이 나와 있습니다.

정규식 시각화 도구 또는 철도 다이어그램이란 무엇입니까?

정규식 시각화 도우미는 정규 표현식을 철도 다이어그램으로 그립니다. 왼쪽에서 오른쪽으로 따라가는 트랙에서 분기는 대안이고 루프는 반복이며 우회는 선택적 부분입니다. 원시 구문보다 긴 패턴을 훨씬 쉽게 읽을 수 있습니다. 여기서 다이어그램은 대화형입니다. 상자에 마우스를 올려 패턴에서 강조 표시하면 일반 영어 설명이 표시됩니다.

정규식 다이어그램을 다운로드할 수 있나요?

예. 다이어그램 위의 SVG 또는 PNG 버튼을 사용하여 문서화, 코드 검토 또는 교육 자료용으로 다운로드할 수 있습니다. 확대/축소 및 너비 맞춤 컨트롤은 긴 패턴에 도움이 됩니다.

ReDoS(재난적 역추적)란 무엇입니까?

(a+)+$와 같은 패턴이 동일한 텍스트를 중첩된 반복 사이에서 기하급수적으로 많은 방식으로 분할할 수 있으므로 입력이 거의 누락되면 엔진이 몇 초 또는 몇 시간 동안 실행될 때 발생합니다. 이 테스터는 웹 작업자에서 패턴을 실행하고 2초 후에 중지하며 배포하기 전에 중첩된 수량자에 대해 경고합니다.

JavaScript 정규식을 Python으로 어떻게 변환합니까?

코드 탭을 열고 Python을 선택합니다. 이 도구는 (?<name>…)을 (?P<name>…)으로, \k<name>을 (?P=name)으로 다시 쓰고 i, m 및 s 플래그를 re.IGNORECASE, re.MULTILINE 및 re.DOTALL에 매핑하고 $1 대체 항목을 \g<1>로 변환합니다. Python의 내장 re 모듈은 \p{…} 유니코드 속성을 지원하지 않습니다.

정규식 플래그 g, i, m, s, u, v 및 y는 무엇을 의미합니까?

g는 모든 일치 항목을 찾고, i는 대소문자를 무시하고, m은 ^ 및 $가 모든 줄에서 작동하도록 하고, s는 시킵니다. 일치 줄 바꿈, u는 전체 유니코드 및 \p{…} 속성을 활성화하고, v 유니코드 집합 연산을 추가하고, y(고정)는 마지막 일치가 끝난 정확한 위치에서만 일치합니다.

탐욕스러운 수량자와 게으른 수량자의 차이점은 무엇입니까?

욕심 많은 수량자(*, +, {n,m})는 가능한 한 많이 일치하고 필요한 경우 문자를 다시 제공합니다. 게으른 것(*?, +?, {n,m}?)은 가능한 한 적게 일치하고 필요할 때만 확장됩니다. 예를 들어 <.+>는 전체 태그 줄과 일치하는 반면 <.+?>는 한 번에 하나의 태그와 일치합니다. 다이어그램에서는 게으른 루프가 점선으로 그려져 있습니다.

미리보기와 뒤보기는 어떻게 작동하나요?

그들은 현재 위치를 일치에 포함하지 않고 뒤(?=…) 또는 앞(?<=…)에 오는지 확인합니다. 부정 형식(?!…) 및 (?<!…)에는 텍스트가 없어야 합니다. 예를 들어 \d+(?=px)는 '12px'의 12와 일치합니다. JavaScript는 모든 길이의 뒤돌아보기를 지원합니다.

이 도구가 정규 표현식을 생성할 수 있나요?

예. 몇 가지 예를 빌드 탭에 붙여넣으면 문자, 숫자 및 기호를 일반화하여 패턴을 제안합니다(예: 2026-09-24는 \d{4}-\d{2}-\d{2}가 됨). 이메일, URL, IP 주소, 전화번호, 날짜 및 비밀번호 규칙 등 라이브러리에 있는 40가지 테스트된 패턴에서 시작할 수도 있습니다.

정규식에 대한 단위 테스트를 어떻게 작성합니까?

단위 테스트 탭을 열고 일치해야 하거나, 완전히 일치해야 하거나, 일치하지 않아야 하는 문자열을 추가합니다. 모든 테스트는 통과/실패 횟수와 함께 각 키 입력에서 다시 실행되며 가져오기 라인은 테스트 텍스트의 각 라인을 테스트 사례로 바꿉니다.

정규식을 다른 사람과 공유할 수 있나요?

정확한 패턴, 플래그, 테스트 텍스트, 교체 및 단위 테스트를 다시 여는 URL을 복사하려면 링크 공유를 클릭하세요. 모든 것이 링크 자체 내부에 인코딩되므로 서버에는 아무것도 저장되지 않습니다.

이것이 regex101 또는 RegExr과 어떻게 다릅니까?

regex101을 사용하면 이 도구에서는 지원하지 않는 PCRE, Python 및 Java와 같은 여러 엔진 간에 전환할 수 있습니다. 이 테스터는 코드가 실제로 실행되는 JavaScript 엔진에 중점을 두고 대화형 철도 다이어그램, 단위 테스트, ReDoS 보호, 9개 언어에 대한 코드 내보내기 및 호환성 테이블을 추가합니다. 계정도 없고 아무것도 업로드되지 않습니다.

일지에서

All articles →