정규식 치트 시트

단계 1 / 3 33%

정규식 엔진 선택

사용하는 엔진부터 선택하세요. 선택한 엔진에 적용되지 않는 문법은 참조에서 숨겨집니다.

일반적인 정규식 문법을 코드에 붙여 넣기 전에 이 대화형 참조에서 비교하세요. JavaScript, PCRE2/PHP, Python re, .NET 또는 전체 엔진 보기를 고른 다음 주제를 선택하고 표시된 항목을 검색할 수 있습니다. 한 엔진에서 컴파일되는 토큰이 다른 엔진에서는 거부되거나 다른 의미가 될 수 있으므로, 특정 계열에만 해당하는 문법을 표시합니다. 검색과 복사는 브라우저에서 수행되며 이 페이지는 사용자의 텍스트에 패턴을 실행하지 않습니다.

정규식 치트 시트 사용 방법

  1. 1

    엔진 선택

    JavaScript, PCRE2/PHP, Python re, .NET 중 하나로 시작하거나 모두 비교하세요. 집중 보기에서는 선택한 엔진에 적용되지 않는 항목을 생략합니다.

  2. 2

    주제 선택

    앵커, 문자 클래스, 수량자, 그룹, 전후방 탐색, 일반 패턴 형태 또는 플래그와 옵션을 엽니다.

  3. 3

    로컬에서 검색 및 복사

    페이지에서 토큰과 설명을 검색하고 토큰을 선택해 복사하세요. 검색 텍스트는 서버로 전송되거나 URL에 추가되지 않습니다.

  4. 4

    실제 런타임에서 확인

    프로젝트에서 사용하는 엔진, 플래그, API로 최종 표현식을 컴파일하고 테스트하세요. 이 참조는 문법을 설명할 뿐 프로덕션 데이터를 검증하지 않습니다.

호환성이 중요합니다

정규식은 하나의 범용 언어가 아닙니다. 이 빠른 참조는 비슷해 보이지만 엔진 사이에서 그대로 옮겨지지 않는 문법을 구분합니다.

기능 JavaScript RegExp PCRE2 / PHP Python re .NET
절대 시작 \A 없음 \A \A \A
절대 끝 \z 없음 \z \Z \z
Unicode 속성 \p{L} u 또는 v 모드 사용 지원 내장 re에서는 미지원 지원
이름 있는 캡처 (?<name>...) (?<name>...) 또는 (?P<name>...) (?P<name>...) (?<name>...)
이름 있는 역참조 \k<name> \k<name> 또는 (?P=name) (?P=name) \k<name>
전역 일치 g 플래그와 일치 API preg_match_all 같은 반복 일치 API finditer 같은 반복 일치 API Matches 같은 반복 일치 API

\d\w는 특히 주의해야 합니다. JavaScript에서 \d는 ASCII 숫자 0-9로 남고, u를 추가해도 \w는 본질적으로 ASCII 단어 문자입니다. 다른 엔진은 모드와 구성에 따라 Unicode 인식 규칙을 적용할 수 있습니다. Unicode 동작이 중요하다면 필요한 정확한 속성이나 클래스를 작성하고 테스트하세요.

앵커와 경계

토큰 나타내는 것 이식성 참고
^ 입력 시작 또는 여러 줄 모드의 행 시작 네 계열 모두에서 사용할 수 있습니다.
$ 입력 끝 또는 여러 줄 모드의 행 끝 네 계열 모두에서 사용할 수 있으나 마지막 줄 바꿈 세부 사항은 다릅니다.
\b 단어 경계 단어 문자로 간주되는 범위는 엔진과 모드에 따라 달라집니다.
\A 대상 문자열의 절대 시작 PCRE2, Python, .NET에서 사용 가능하며 JavaScript에서는 불가합니다.
\z 대상 문자열의 절대 끝 PCRE2와 .NET에서 사용하며 Python은 \Z를 사용합니다.
\Z Python 대상 문자열 끝 PCRE2와 .NET도 마지막 줄 바꿈 앞에서 일치할 수 있으며, 절대 끝에는 \z를 사용합니다.

그룹과 전후방 탐색

토큰 의미 중요한 제한
(abc) 캡처 그룹 네 계열 모두에서 사용할 수 있습니다.
(?:abc) 비캡처 그룹 네 계열 모두에서 사용할 수 있습니다.
(?<name>abc) 이름 있는 그룹 JavaScript, PCRE2, .NET 문법입니다.
(?P<name>abc) 이름 있는 그룹 Python 문법이며 PCRE2도 허용합니다.
(?=abc) / (?!abc) 긍정 / 부정 전방 탐색 네 계열 모두에서 사용할 수 있습니다.
(?<=abc) / (?<!abc) 긍정 / 부정 후방 탐색 네 계열 모두 지원하지만 허용되는 후방 탐색 길이는 다릅니다.

후방 탐색은 흔한 이식성 함정입니다. Python re에는 고정 폭 후방 탐색이 필요합니다. JavaScript 지원은 배포하는 런타임에 따라 다릅니다. 치트 시트 한 줄만 믿지 말고 지원하는 가장 오래된 런타임에서 정확한 패턴을 테스트하세요.

완전한 검증기가 아닌 패턴 형태

일반 패턴 항목은 의도적으로 형태만 설명합니다. 예를 들어 ^\d{4}-\d{2}-\d{2}$2026-99-99를 받아들이고, 단순한 이메일 형태 패턴은 완전한 이메일 주소 표준을 구현할 수 없습니다. 초기 형식 확인 후에는 적절한 라이브러리로 날짜, URL, 구조화된 식별자를 파싱하세요.

형태 예시 패턴 증명하지 못하는 것
부호 있는 소수 ^-?\d+(?:\.\d+)?$ 로캘 소수 기호, 그룹화, 숫자 범위 또는 정밀도.
이메일 형태 텍스트 ^[\w.+-]+@[\w-]+\.[\w.-]+$ 전달 가능하거나 표준을 완전히 충족하는 이메일 주소.
HTTP(S) URL 형태 텍스트 ^https?://\S+$ 안전하고 파싱 가능하거나 도달 가능한 URL.
ISO 날짜 형태 ^\d{4}-\d{2}-\d{2}$ 실제 달력 날짜.
ASCII 슬러그 문자 ^[A-Za-z0-9_-]+$ 애플리케이션의 대소문자, 구분자 또는 예약어 규칙.

플래그와 옵션

호스트 API를 확인하기 전에는 플래그를 복사하지 마세요. JavaScript는 /pattern/g로 쓰고, Python은 re.I 또는 re.X를 전달하며, .NET은 RegexOptions를 사용할 수 있고 PCRE2/PHP는 보통 구분자와 뒤따르는 수정자를 사용합니다. g는 JavaScript 전역 일치 플래그이지 PCRE2 수정자가 아닙니다. 반복 PCRE2 일치는 보통 PHP API가 제어합니다. 확장 모드 x는 PCRE2, Python, .NET에서 사용할 수 있지만 JavaScript 플래그는 아닙니다.

자주 묻는 질문

아니요. 브라우저 로컬 검색 및 복사 기능이 있는 문법 참조입니다. 정규식 테스터와 애플리케이션에서 쓰는 런타임으로 패턴을 컴파일하고 대표 입력을 테스트하세요.

익숙해 보이는 토큰 중에도 이식할 수 없는 것이 있습니다. 예를 들어 Python 내장 re는 이름 있는 그룹에 (?P<name>…)를 사용하고 JavaScript는 (?<name>…)를 사용하며, JavaScript는 절대 앵커 \A나 \z를 지원하지 않습니다.

아니요. JavaScript에서 \d는 ASCII 숫자이고 u 플래그가 있어도 \w는 본질적으로 ASCII 단어 문자입니다. 다른 엔진에는 다른 Unicode 모드와 옵션이 있으므로 데이터에 필요한 동작을 테스트하세요.

빠른 형태 확인용으로만 사용하세요. 이메일이 전달 가능한지, URL이 안전하거나 도달 가능한지, 날짜가 달력에 존재하는지는 증명하지 않습니다. 프로덕션 규칙에는 전용 파서나 검증기를 사용하세요.

관련 도구