정규식 및 패턴 매칭

파이썬 정규식 테스트실제 re 결과 확인

패턴과 텍스트를 입력한 뒤 Python의 검색, 전체 일치 또는 치환을 직접 실행하세요.

파이썬 정규식 테스트

패턴

테스트 문자열

결과

입력하거나 수동으로 실행하세요.

패턴과 텍스트는 이 브라우저에서만 처리됩니다. Python 파일은 첫 실행 때 불러옵니다.

옵션

i, m, s, x, a를 한 번씩만 사용합니다. JavaScript g는 없습니다.
  • i — 대소문자 무시
  • m — ^와 $가 줄 경계에 일치
  • s — 점이 줄바꿈에 일치
  • x — 공백 무시와 주석 허용
  • a — 문자 클래스에 ASCII 적용

Python 실행 환경: 첫 테스트 때 불러옴

상한: 패턴 2000, 텍스트 100000, 치환 10000 UTF-16 단위; 일치 10000개, 출력 100만, 보고서 400만 단위. 실행이 2초를 넘으면 중지합니다.

입력하거나 수동으로 실행하세요.

주문 로그에서 번호와 담당자 이름을 뽑을 때 괄호 하나만 옮겨도 다른 값이 잡힙니다. (?P<id>...)를 작은 예제에 먼저 적용해 그룹 값과 범위를 비교하면, 실제 코드에 넣기 전에 예상 밖의 결과를 찾을 수 있습니다.

정규식 테스터나 정규표현식 검사기에서 결과가 달랐다면 finditer, search, fullmatch를 비교하세요. 캡처 그룹 위치는 Unicode 코드 포인트로 표시되고 Python 치환에는 \g<name>을 씁니다.

파이썬 정규식 테스트가 필요한 이유

전체 일치와 그룹을 분리

파이썬 정규식 테스트는 전체 일치와 번호·이름이 있는 캡처 그룹을 함께 보여 줍니다. 참여하지 않은 그룹의 null 및 (-1, -1)과 실제 빈 문자열 캡처를 구별할 수 있습니다.

파란 전체 일치 안에 청록색과 주황색 캡처가 있고 각각 결과 카드로 이어진다.

원문을 남겨 둔 치환 미리 보기

\g<last>와 \g<first>로 필드 순서를 바꾸면 re.subn이 별도 결과를 만듭니다. 횟수 0은 모두 바꾸기를 뜻하며 원문은 그대로 남습니다.

왼쪽 원문의 두 색상 부분이 오른쪽 미리 보기에서 순서를 바꾸고 원문은 유지된다.

실수하기 쉬운 re 동작 확인하기

01

일치 범위를 먼저 정하기

finditer는 겹치지 않는 모든 결과를 나열하고 search는 첫 일치를 찾습니다. fullmatch는 텍스트 전체가 맞아야 합니다. JavaScript의 g 플래그는 없습니다.

02

플래그를 고른 뒤 수동 실행

i, m, s, x, a는 Python 플래그입니다. m은 ^와 $의 줄 경계를, s는 점의 줄바꿈 일치를 바꿉니다. 첫 실행 때 Python 런타임을 불러옵니다.

03

위치와 최신 결과 확인

범위는 0부터 세는 Unicode 코드 포인트이며 끝 위치는 포함되지 않습니다. A😀B의 B는 2에서 시작합니다. Ctrl/Cmd + Enter로 다시 실행할 수 있습니다.

결과에서 확인할 수 있는 것

실제 CPython re

파이썬 정규식 테스트는 Pyodide를 별도 Worker에서 실행하고 실제 Python 버전을 표시합니다. JavaScript RegExp를 Python이라고 표시하지 않습니다.

캡처 그룹과 위치

group 0, 번호, 이름, 값, 범위를 기록합니다. 이모지가 있어도 Python 코드 포인트를 브라우저 UTF-16 위치로 바꿔 정확히 강조합니다.

Python 규칙에 맞는 치환

re.subn 미리 보기는 \1과 \g<name>을 펼칩니다. 빈 템플릿은 일치 부분을 지우고 $1은 일반 문자로 남습니다.

완전한 결과 보고서

실행이 끝난 경우에만 패턴, 플래그, 작업, 버전과 모든 결과가 든 JSON을 복사하거나 다운로드할 수 있습니다.

이 실행의 구체적인 제한

Python re만 사용
파이썬 정규식 테스트는 CPython re의 Unicode 텍스트만 처리합니다. PCRE2, JavaScript, 외부 regex 패키지로 엔진을 바꾸지 않습니다.
입력할 때 자동 실행하지 않음
복잡한 패턴은 버튼이나 단축키로만 시작합니다. Python 로딩이 끝난 뒤 2초를 넘기면 Worker를 종료하고 부분 결과를 0개 일치로 오해하게 하지 않습니다.
JavaScript 플래그 제외
i, m, s, x, a만 한 번씩 사용합니다. g, u, y는 여기의 Python 문자열 패턴 플래그가 아니며 전체 검색은 finditer로 고릅니다.
입력과 출력 상한
패턴 2000, 텍스트 100000, 치환 템플릿 10000 UTF-16 단위까지입니다. 일치 10000개나 출력·보고서 상한을 넘으면 전체 실행이 실패합니다.
임의 코드와 원격 입력 없음
정해진 re 작업만 실행합니다. Python 코드 실행, 파일 읽기, URL 요청이나 입력을 넣은 공유 링크는 제공하지 않습니다.
치환 결과는 미리 보기
re.subn 결과는 별도로 보입니다. 예제와 지우기로 입력을 바꾸려면 먼저 확인하고 적용 후 한 번 되돌릴 수 있습니다.

파이썬 정규식 테스트 자주 묻는 질문

regex101에서는 되는데 Python에서는 왜 실패하나요?

regex101의 엔진 선택을 보세요. 기본 PCRE2와 CPython re는 다릅니다. Python 이름 붙은 그룹은 (?P<name>...) 형식입니다.

여기서 Python re.sub 치환을 시험할 수 있나요?

네. 치환을 선택해 \g<name>이나 \1을 입력하세요. $1은 그룹 참조가 아니며 결과는 원문을 덮어쓰지 않습니다.

Python 일치 위치와 그룹을 온라인으로 볼 수 있나요?

네. 일치 부분을 강조하고 그룹 값과 범위를 표시합니다. 길이가 0인 일치도 위치 표시로 확인할 수 있습니다.

왜 .*?가 .*보다 안전한 경우가 있나요?

앞의 형태는 짧은 가능한 범위부터, 뒤의 형태는 긴 범위부터 시도합니다. 둘 다 실행 시간의 안전을 보장하지 않으므로 경계 사례를 시험하세요.

(...)와 (?:...)는 무엇이 다른가요?

둘 다 패턴을 묶지만 (...)만 번호가 있는 캡처를 만듭니다. (?:...)는 번호를 차지하지 않아 치환에서 참조할 그룹을 추가하지 않습니다.

더 궁금한 점이 있나요?

실제 경계 사례로 파이썬 정규식 테스트하기

일치하는 예와 실패하는 예를 나란히 보고, 캡처 및 Python 버전을 확인한 뒤 보고서를 저장하세요.