일치 범위를 먼저 정하기
finditer는 겹치지 않는 모든 결과를 나열하고 search는 첫 일치를 찾습니다. fullmatch는 텍스트 전체가 맞아야 합니다. JavaScript의 g 플래그는 없습니다.
정규식 및 패턴 매칭
패턴과 텍스트를 입력한 뒤 Python의 검색, 전체 일치 또는 치환을 직접 실행하세요.
입력하거나 수동으로 실행하세요.
패턴과 텍스트는 이 브라우저에서만 처리됩니다. Python 파일은 첫 실행 때 불러옵니다.
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은 모두 바꾸기를 뜻하며 원문은 그대로 남습니다.
finditer는 겹치지 않는 모든 결과를 나열하고 search는 첫 일치를 찾습니다. fullmatch는 텍스트 전체가 맞아야 합니다. JavaScript의 g 플래그는 없습니다.
i, m, s, x, a는 Python 플래그입니다. m은 ^와 $의 줄 경계를, s는 점의 줄바꿈 일치를 바꿉니다. 첫 실행 때 Python 런타임을 불러옵니다.
범위는 0부터 세는 Unicode 코드 포인트이며 끝 위치는 포함되지 않습니다. A😀B의 B는 2에서 시작합니다. Ctrl/Cmd + Enter로 다시 실행할 수 있습니다.
파이썬 정규식 테스트는 Pyodide를 별도 Worker에서 실행하고 실제 Python 버전을 표시합니다. JavaScript RegExp를 Python이라고 표시하지 않습니다.
group 0, 번호, 이름, 값, 범위를 기록합니다. 이모지가 있어도 Python 코드 포인트를 브라우저 UTF-16 위치로 바꿔 정확히 강조합니다.
re.subn 미리 보기는 \1과 \g<name>을 펼칩니다. 빈 템플릿은 일치 부분을 지우고 $1은 일반 문자로 남습니다.
실행이 끝난 경우에만 패턴, 플래그, 작업, 버전과 모든 결과가 든 JSON을 복사하거나 다운로드할 수 있습니다.
regex101의 엔진 선택을 보세요. 기본 PCRE2와 CPython re는 다릅니다. Python 이름 붙은 그룹은 (?P<name>...) 형식입니다.
네. 치환을 선택해 \g<name>이나 \1을 입력하세요. $1은 그룹 참조가 아니며 결과는 원문을 덮어쓰지 않습니다.
네. 일치 부분을 강조하고 그룹 값과 범위를 표시합니다. 길이가 0인 일치도 위치 표시로 확인할 수 있습니다.
앞의 형태는 짧은 가능한 범위부터, 뒤의 형태는 긴 범위부터 시도합니다. 둘 다 실행 시간의 안전을 보장하지 않으므로 경계 사례를 시험하세요.
둘 다 패턴을 묶지만 (...)만 번호가 있는 캡처를 만듭니다. (?:...)는 번호를 차지하지 않아 치환에서 참조할 그룹을 추가하지 않습니다.
더 궁금한 점이 있나요?