DevToys Web Pro iconDevToys Web Pro블로그
평가하기:
브라우저 확장 프로그램을 사용해 보세요:

정규 표현식 테스터

설정

패턴

테스트 문자열

  • 일치 항목

    일치 항목을 보려면 패턴을 입력하세요

    바꾸기

    참조

    문자 클래스

    .줄바꿈을 제외한 모든 문자
    [abc]a, b 또는 c와 일치
    [^abc]a, b, c를 제외한 모든 것과 일치
    [a-z]문자 범위(a부터 z까지)
    \d숫자(0-9)
    \D숫자가 아닌 문자
    \w단어 문자 [a-zA-Z0-9_]
    \W단어 문자가 아닌 문자
    \s공백 문자
    \S공백 문자가 아닌 문자

    앵커

    ^문자열/줄의 시작
    $문자열/줄의 끝
    \b단어 경계
    \B단어 경계가 아님

    이스케이프 문자

    \t
    \n줄바꿈
    \r캐리지 리턴
    \0널 문자
    \xhh16진수 문자(예: \xFF)
    \uhhhh유니코드 문자

    그룹 및 참조

    (abc)캡처 그룹
    (?:abc)비캡처 그룹
    (?<name>abc)이름 있는 캡처 그룹
    \1그룹 1에 대한 역참조
    \k<name>이름 있는 그룹에 대한 역참조

    룩어라운드

    (?=abc)긍정형 전방 탐색
    (?!abc)부정형 전방 탐색
    (?<=abc)긍정형 후방 탐색
    (?<!abc)부정형 후방 탐색

    수량자 및 대안

    a*0회 이상(그리디)
    a+1회 이상(그리디)
    a?0회 또는 1회(선택 사항)
    a{n}정확히 n회
    a{n,}n회 이상
    a{n,m}n회에서 m회 사이
    a*?0회 이상(레이지)
    a+?1회 이상(레이지)
    a|ba 또는 b와 일치

    치환

    $1, $2캡처된 그룹 내용
    $&전체 일치
    $`일치 이전
    $'일치 이후
    $$리터럴 $ 문자
    기술적 세부 정보

    정규식(RegEx) 테스터가 작동하는 방식

    도구가 하는 일

    정규식 테스터를 사용하면 샘플 텍스트에 대해 정규식을 실시간으로 테스트할 수 있습니다. 이 테스터는 정규식 디버거이자 정규식 검증기로서, 개발자가 패턴 매칭 표현식을 만들고 테스트하며 다듬는 데 도움을 줍니다. 이 테스터는 JavaScript RegExp 엔진(ECMAScript)을 사용하므로 문법이 PCRE, .NET 또는 Java 정규식 엔진과 다를 수 있습니다. 정규식을 온라인으로 테스트해야 할 때 이 도구는 모든 매치, 캡처 그룹, 치환 결과를 보여줍니다. 이 도구는 JavaScript 정규식 플래그(g, i, m, s, u)를 포함한 JavaScript 정규식 문법을 지원합니다: 전역(g), 대소문자 무시(i), 멀티라인(m), dotAll(s), 유니코드(u). 테스트 문자열에서 매치를 하이라이트하고 캡처 그룹을 표시하며, 찾기-바꾸기 작업을 수행해 정규식이 텍스트를 어떻게 변환하는지 미리 볼 수 있습니다.

    개발자들이 흔히 사용하는 사례

    개발자는 검증 패턴을 만들거나, 로그 파일을 파싱하거나, 문자열에서 데이터를 추출할 때 정규식 테스터를 사용합니다. 정규식 패턴을 테스트하면 엣지 케이스를 찾고, 복잡한 표현식을 디버깅하며, 서로 다른 플래그가 매칭 동작에 어떤 영향을 미치는지 이해하는 데 도움이 됩니다. 많은 개발자가 이메일 주소, 전화번호, URL 또는 기타 구조화된 데이터 형식을 검증하기 위해 정규식 테스터를 사용합니다. 이 도구는 폼 검증, 로그 분석, 텍스트 처리 작업에 유용합니다. 정규식 테스터는 매치 반복과 그룹 추출을 통해 패턴이 텍스트와 어떻게 매칭되는지 보여주므로 정규식을 학습할 때도 도움이 됩니다. 멀티라인 텍스트나 특수 문자가 포함된 정규식을 테스트할 때, 이 도구는 무엇이 정확히 매칭되는지와 그 이유를 개발자가 확인하도록 도와줍니다.

    데이터 형식, 타입 또는 변형

    정규식 테스터는 JavaScript 정규식 문법을 처리하며, 이는 Perl 스타일 정규식을 기반으로 하지만 다른 정규식 엔진과의 차이가 일부 있습니다. 이 도구는 숫자를 의미하는 \d, 단어 문자를 의미하는 \w, 공백 문자를 의미하는 \s 같은 문자 클래스를 지원합니다. 앵커( ^, $), 수량자(*, +, ?), 그리고 대안(OR) 연산(|)을 처리합니다. 멀티라인 플래그는 ^$의 매칭 방식에 영향을 주며, dotAll 플래그는 .이 줄바꿈 문자를 매칭하도록 합니다. 정규식 줄바꿈 동작을 이해하는 것은 멀티라인 텍스트 처리에 매우 중요합니다. 예를 들어 /\d-\d-\d/ 같은 패턴을 전화번호 문자열에 테스트하면 어떤 부분이 매칭되는지 정확히 확인할 수 있습니다. 정규식의 줄바꿈 처리는 플래그에 따라 달라집니다. ^foo.*bar$ 패턴은 "foo\nbar"에 대해 dotAll 플래그(s)가 있을 때만 매칭되는데, 기본적으로 .은 줄바꿈을 매칭하지 않기 때문입니다. 정규식 줄바꿈 패턴을 다룰 때는 리터럴 줄바꿈을 매칭하려면 \n을, Windows 줄바꿈을 위해서는 \r\n을 사용하세요.

    흔한 함정과 엣지 케이스

    흔한 실수 중 하나는 JavaScript 정규식이 따옴표가 아니라 슬래시를 구분자로 사용한다는 점을 잊는 것입니다. 또 다른 문제는 전역 플래그가 매칭에 미치는 영향을 오해하는 것입니다. 전역 플래그가 없으면 첫 번째 매치만 반환되지만, 전역 플래그가 있으면 모든 매치를 찾습니다. 정규식 줄바꿈 처리는 까다로울 수 있습니다. . 문자는 dotAll 플래그를 사용하지 않는 한 기본적으로 줄바꿈을 매칭하지 않습니다. [^...]로 표현하는 문자 클래스 부정은 클래스에 포함되지 않은 어떤 문자든 매칭하므로 혼란스러울 수 있습니다. 탐욕적 수량자와 게으른 수량자( * vs *?)는 다르게 동작하며 예상치 못한 결과를 낳을 수 있습니다. 전방/후방 탐색( (?=...), (?&lt;=...))은 강력하지만 디버깅이 어려울 수 있습니다. 개발자는 빈 문자열, 특수 문자, 유니코드 문자 같은 엣지 케이스를 포함해 다양한 입력으로 정규식 패턴을 테스트해야 합니다.

    코드 대신 이 도구를 사용해야 하는 경우

    빠른 패턴 개발, 복잡한 표현식 디버깅, 또는 정규식 문법 학습을 위해 이 정규식 테스터를 사용하세요. 특히 익숙하지 않은 문법이나 복잡한 패턴을 다룰 때, 코드에 구현하기 전에 정규식 패턴을 테스트하는 데 이상적입니다. 시각적 피드백을 통해 패턴이 특정 텍스트와 매칭되는지/되지 않는지 이유를 파악할 수 있습니다. 프로덕션 코드에서는 IDE나 단위 테스트 프레임워크에 통합된 정규식 테스터를 사용해 테스트 스위트의 일부로 패턴을 검증하세요. 브라우저 도구는 대화형 개발과 학습에 강점이 있고, 코드 기반 솔루션은 자동화, CI/CD 파이프라인과의 통합, 대용량 데이터셋에 대한 패턴 테스트 기능을 제공합니다. 복잡한 애플리케이션에서는 자동화된 정규식 테스트를 통해 다양한 입력과 엣지 케이스에서 패턴이 올바르게 동작하는지 보장할 수 있습니다.