정규 표현식 확인 및 테스트
온라인에서 정규 표현식을 테스트하세요. 일치 항목을 분석하고, 오류를 수정하고, 데이터 검색을 위한 효과적인 패턴을 만드세요.
정규식 테스트
정규식 결과
일치 항목
일치 항목을 찾을 수 없음
나머지
불일치 콘텐츠 없음
온라인에서 정규 표현식을 테스트하세요. 일치 항목을 분석하고, 오류를 수정하고, 데이터 검색을 위한 효과적인 패턴을 만드세요.
일치 항목을 찾을 수 없음
불일치 콘텐츠 없음
RegExp 패턴을 실시간으로 확인할 수 있어 복잡한 검색 패턴 개발 및 디버깅을 단순화합니다.
프로그래밍 언어에서 사용되는 대소문자 구분, 전역 검색, 다중선 모드 및 기타 설정을 고려할 수 있습니다.
대량의 텍스트 배열, 로그 및 HTML 코드를 자동으로 처리하기 위한 표현식을 빠르게 생성할 수 있습니다.
정규 표현식(Regex)은 텍스트를 검색, 검증, 처리하기 위해 사용하는 패턴 매칭 언어입니다.
Regex를 사용하면 다음과 같은 작업이 가능합니다:
특정 텍스트 조각 찾기 (예: 이메일, URL, 숫자)
데이터 형식 검증 (폼 유효성 검사)
텍스트 치환 및 정리
문자열에서 구조화된 데이터 추출
Regex는 개발, 데이터 분석, SEO, 자동화에서 널리 사용됩니다.
이 도구를 사용하면 정규 표현식을 실시간으로 테스트하고 즉시 결과를 확인할 수 있습니다.
이 도구로 할 수 있는 일:
문자열이 특정 패턴과 일치하는지 확인
텍스트 내 모든 매칭 결과 확인
복잡한 표현식 디버깅
코드를 작성하지 않고 다양한 regex 패턴 테스트
정규 표현식은 완전히 범용적이지 않습니다. 지원되는 문법은 프로그래밍 언어와 엔진에 따라 달라집니다.
엔진 | 사용처 | 특징 |
|---|---|---|
JavaScript (ECMAScript) | 브라우저, Node.js | 제한적인 lookbehind 지원 (버전에 따라 다름) |
PCRE | PHP, 다양한 도구 | 가장 강력한 엔진 중 하나 |
Python (re) | Python | 일부 PCRE 기능 미지원 |
Java (Pattern) | Java | 엄격한 문법 |
.NET | C# | 확장된 기능 제공 |
Regex는 실제 사용할 환경에서 반드시 테스트해야 합니다. lookbehind와 Unicode 지원 차이에 주의하세요. 크로스플랫폼 호환성이 중요하다면 더 단순한 패턴을 사용하는 것이 좋습니다.
플래그는 패턴이 처리되는 방식을 바꾸는 옵션입니다. 대소문자 구분, 검색 범위(한 줄 또는 여러 줄), 문자 해석 방식을 제어할 수 있습니다.
플래그 | 의미 |
|---|---|
i | 대소문자 무시 |
g | 전역 검색 |
m | 멀티라인 모드 |
s | Dotall (.에 \n 포함) |
u | Unicode |
유형 | 심볼 | 설명 |
|---|---|---|
앵커(위치) | ^ | 문자열 시작 |
앵커(위치) | $ | 문자열 끝 |
앵커(위치) | \b | 단어 경계 |
앵커(위치) | \B | 단어 경계 아님 |
메타문자 | . | 줄바꿈(\n)을 제외한 모든 문자와 일치 |
메타문자 | | | OR 연산자 |
메타문자 | \ | 이스케이프 문자 |
리터럴 | a | 문자 “a” |
리터럴 | ab | 문자열 “ab” |
수량자 | * | 0회 이상 반복 |
수량자 | ? | 0회 또는 1회 반복 |
수량자 | + | 1회 이상 반복 |
수량자 | {5} | 정확히 5회 반복 |
수량자 | {5,} | 5회 이상 반복 |
수량자 | {5,10} | 5회에서 10회 사이 반복 |
문자 클래스 | \s | 공백 문자 |
문자 클래스 | \S | 공백이 아닌 문자 |
문자 클래스 | \w | 단어 문자(영숫자 + 밑줄) |
문자 클래스 | \W | 단어 문자가 아닌 문자 |
문자 클래스 | \d | 숫자 |
문자 클래스 | \D | 숫자가 아닌 문자 |
이스케이프 시퀀스 | [\b] | 백스페이스 |
이스케이프 시퀀스 | \c | 제어 문자 |
이스케이프 시퀀스 | \n | 줄바꿈 |
이스케이프 시퀀스 | \t | 탭 |
이스케이프 시퀀스 | \r | 캐리지 리턴 |
이스케이프 시퀀스 | \ZZZ | 8진수 문자 |
이스케이프 시퀀스 | \xZZ | 16진수 문자 |
이스케이프 시퀀스 | \0 | 널 문자 |
이스케이프 시퀀스 | \v | 수직 탭 |
그룹 | (xyz) | 캡처 그룹 |
그룹 | (?:xyz) | 비캡처 그룹 |
집합 및 범위 | [xyz] | x, y, z 중 하나 |
집합 및 범위 | [^xyz] | x, y, z가 아닌 문자 |
집합 및 범위 | [a-q] | a부터 q까지 범위 |
집합 및 범위 | [0-7] | 0부터 7까지 범위 |
치환 패턴 | $` | 매치 이전 텍스트 |
치환 패턴 | $' | 매치 이후 텍스트 |
치환 패턴 | $+ | 마지막 캡처 그룹 |
치환 패턴 | $& | 전체 매치 문자열 |
치환 패턴 | $n | n번째 캡처 그룹 (예: $1, $2) |
패턴 | (?=xyz) | 긍정형 전방 탐색 (positive lookahead) |
패턴 | (?!xyz) | 부정형 전방 탐색 (negative lookahead) |
패턴 | (?<=xyz) | 긍정형 후방 탐색 (positive lookbehind) |
패턴 | (?<!xyz) | 부정형 후방 탐색 (negative lookbehind) |
주석 | (?#comment) | 주석 (엔진에서 무시됨) |
작업 | Regex |
|---|---|
숫자만 | ^\d+$ |
라틴 문자만 | ^[A-Za-z]+$ |
날짜 (DD.MM.YYYY) | \d{2}\.\d{2}\.\d{4} |
도메인 | ^[a-z0-9.-]+\.[a-z]{2,}$ |
URL | https?:\/\/[^\s]+ |
슬러그 | ^[a-z0-9-]+$ |
이메일 (기본) | ^[^\s@]+@[^\s@]+\.[^\s@]+$ |
이메일 (엄격) | ^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$ |
전화번호 (일반) | ^\+?\d{7,15}$ |
HTML 태그 | <[^>]+> |
강한 비밀번호 | ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[\W_]).{12,}$ |
UUID | ^[0-9a-fA-F-]{36}$ |
HEX 색상 | ^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ |
IP (IPv4) | ^(\d{1,3}\.){3}\d{1,3}$ |
MAC 주소 | ^([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}$ |
정규 표현식은 단순해 보이지만 실제로는 많은 함정을 포함하고 있습니다. 아래는 잘못된 결과를 초래하는 대표적인 실수입니다.
이스케이프 누락: .은 점 자체가 아니라 모든 문자와 매치됨 → \. 사용
수량자 사용 오류: *, +, {}는 전체 문자열이 아니라 바로 앞 토큰에 적용됨
greedy와 lazy 혼동: .*는 최대한 많이 매치 → 최소 매치가 필요하면 .*? 사용
앵커 ^와 $ 누락: 없으면 문자열 전체가 아니라 일부에서 매치될 수 있음
대소문자 구분: "Test" ≠ "test" → 필요하면 i 플래그 사용
공백 문자 혼동: \s는 스페이스뿐 아니라 탭, 줄바꿈 등도 포함함
Unicode에 \w 사용: 대부분 엔진에서 \w = [A-Za-z0-9_] (키릴 문자 등은 포함되지 않음)
복잡한 형식(HTML, JSON)을 regex로 파싱하려고 시도: 신뢰하기 어려움 → 전용 파서 사용
지나치게 복잡한 패턴 작성: 유지보수와 디버깅이 어려움
중첩 수량자 사용: 예: (.*)+는 catastrophic backtracking을 유발할 수 있음
제한 없는 패턴 사용: .*를 제약 없이 사용하면 긴 문자열에서 처리 속도가 느려질 수 있음
이 도구의 정규 표현식은 ECMAScript (JavaScript RegExp) 표준에 따라 처리됩니다. 즉, 패턴 동작은 브라우저 또는 JavaScript 코드에서 작동하는 방식과 일치합니다. 문자 이스케이프(/ 및 /)와 같은 일부 구문은 다르게 보이지만 동일하게 작동할 수 있습니다. 다른 언어(예: Python, PHP, .NET 또는 POSIX)의 정규 표현식에 익숙하다면 구문 및 일치 논리에 차이가 있을 수 있음을 알아두십시오.
이 도구를 사용하면 정규 표현식(RegEx)을 테스트하고 작동하는지 확인할 수 있습니다. RegEx는 프로그래밍, 데이터 처리 및 SEO 분석에서 널리 사용됩니다.
이 도구를 사용하면 텍스트 패턴을 검색, 대체 및 분석하여 대량의 데이터 작업을 단순화할 수 있습니다.
정규 표현식(regex)은 텍스트를 검색, 확인 및 조작하는 강력한 패턴 일치 도구입니다. 데이터 유효성 검사, 검색 작업 및 텍스트 처리 작업에 필수적입니다.
우리 정규 표현식 테스터를 사용하면 패턴과 테스트 문자열을 입력하여 실시간으로 일치를 볼 수 있습니다. 다양한 패턴을 실험하고 텍스트의 어떤 부분이 표현식과 일치하는지 확인할 수 있습니다.
일반적인 패턴에는 이메일, 전화번호, 날짜, URL 및 우편 번호 유효성 검사가 포함됩니다. ., *, +, ?, ^, $와 같은 기본 메타 문자 및 \d, \w, \s와 같은 문자 클래스를 학습하십시오.
일반적으로 사용되는 플래그에는 i(대소문자 무시), g(전역 검색), m(다중 줄 모드) 및 u(유니코드 지원)가 포함됩니다. 이는 검색 및 일치를 보다 정확하게 제어하는 데 도움이 됩니다.
백트랙킹이 있는 복잡한 패턴은 큰 텍스트에서 느릴 수 있습니다. 구체적으로 작성하고, 중첩된 수량자를 피하고, 가능하면 앵커(^ 및 $)를 사용하여 최적화하십시오. 실제 데이터 크기로 성능을 테스트하십시오.
캡처 그룹은 패턴과 일치하는 텍스트의 특정 하위 섹션을 추출할 수 있는 정규 표현식의 일부(괄호로 정의됨)입니다. 이는 특정 데이터를 다시 포맷하거나 추출하는 데 유용합니다.
'탐욕스러운' 수량자(예: `.*`)는 가능한 한 많은 문자를 일치시키려고 시도합니다. '게으른' 수량자(예: `.*?`)는 가능한 한 적은 문자를 일치시키려고 시도합니다. 선택은 원하는 일치 동작에 따라 달라집니다.
대부분의 최신 정규 표현식 구현은 유니코드를 지원하여 다른 언어 및 알파벳의 문자를 일치시킬 수 있습니다. 그러나 정확한 지원은 프로그래밍 언어 및 도구에 따라 다를 수 있습니다.