정규식 및 패턴 매칭

정규식 테스터캡처를 보며 확인

/ 구분자 없이 패턴 본문만 입력하세요. 공백과 줄바꿈을 유지하며 빈 패턴도 유효합니다.

정규식 테스터

패턴

/cat/g가 아닌 (cat) 같은 패턴 본문을 입력하고 g는 별도 칸에 넣으세요. 도구는 앞뒤 공백을 자르지 않습니다. 편집기나 클립보드가 줄바꿈을 정규화할 수 있으므로 파일 바이트 보존 테스트는 아닙니다.

테스트 문자열

결과

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

패턴과 문자열은 브라우저의 별도 Worker에서 처리하며 업로드하지 않습니다.

옵션

플래그는 한 번씩만 쓰며 u와 v는 함께 쓸 수 없습니다. g가 없으면 매칭·치환·추출은 첫 결과만 처리합니다.

브라우저 지원 플래그: 브라우저 확인 중…
  • d — 캡처 위치 반환.
  • g — 모든 매치 검색. split과 무관.
  • i — JavaScript 규칙으로 대소문자 무시.
  • m — ^와 $에 행 경계 적용.
  • s — 점에 행 종료 문자 포함.
  • u — Unicode 구문과 코드 포인트 매칭.
  • v — Unicode 집합 모드. u와 동시 사용 불가.
  • y — lastIndex 위치에서만 매칭. 실행마다 0부터 시작.

브라우저 식별: 브라우저 확인 중…. 사용자 에이전트 보고이며 정확한 엔진 버전이 아닙니다.

UTF-16 단위 제한: 본문 100000, 패턴 2000, 치환 입력 10000, 치환 결과 1000000, 보고서 4000000. 결과 최대 10000개. 초과 시 전체 작업 실패. 제한 시간 2초.

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

최신 치환 결과가 올바른 Unicode이며 100000 UTF-16 단위 이내일 때만 입력으로 사용합니다. 미리보기 후 적용하고 되돌리면 이전 입력·옵션·결과를 복원합니다.

정규식 테스터에서 한글과 영문 코드가 섞인 문장을 시험해 보세요. \w는 한글 전체를 뜻하지 않습니다. Unicode 모드의 \p{L}과 결과를 비교하면 이름이나 제목에서 어떤 글자가 빠지는지 확인할 수 있습니다.

정규식 테스트에는 실제 한글과 숫자가 섞인 짧은 입력을 쓰는 편이 좋습니다. 정규표현식 매칭으로 범위를 확인하고 캡처 그룹을 추출한 뒤 정규식 치환을 비교하면, 공백까지 함께 바꾸는 실수도 찾을 수 있습니다.

선택하는 이유: 정규식 테스터

구문과 결과를 함께 확인

필요한 필드를 잡았는지 확인

정규식 테스터에서 전체 매치를 확인하고 캡처 상세를 펼쳐 번호와 이름을 비교하세요. UTF-16 위치가 있어 원문에서 어느 부분을 잡았는지 점검할 수 있습니다.

전체 매치 안의 두 색상 캡처에서 아래의 같은 색 상세 카드로 화살표가 연결된 그림.

첫 치환과 전체 치환 비교

g를 끄면 첫 번째만, 켜면 전체를 치환합니다. 같은 본문에서 두 결과를 비교한 뒤 입력으로 사용할 때만 미리보기를 거쳐 적용합니다.

첫 번째 항목만 바뀐 행과 세 항목 모두 바뀐 행을 비교한 그림.

구문과 결과를 함께 확인

01

패턴 본문 그대로 입력

/cat/g가 아닌 (cat) 같은 패턴 본문을 입력하고 g는 별도 칸에 넣으세요. 도구는 앞뒤 공백을 자르지 않습니다. 편집기나 클립보드가 줄바꿈을 정규화할 수 있으므로 파일 바이트 보존 테스트는 아닙니다.

  • 예제를 선택한 뒤 변경을 미리 보고 적용하세요.
02

실행 조건 선택

cat으로 cat cat을 검색한 뒤 g를 끄면 두 결과가 하나가 됩니다. 자동 실행은 편집 후 350ms를 기다립니다. 자동을 끄면 Ctrl/Cmd+Enter를 사용하세요. 분할에는 첫 매치 규칙이 적용되지 않습니다.

  • 플래그는 한 번씩만 쓰며 u와 v는 함께 쓸 수 없습니다. g가 없으면 매칭·치환·추출은 첫 결과만 처리합니다.
03

전체 내보내기 확인

상세의 null과 ""를 구분하세요. 전자는 그룹 미참여, 후자는 빈 문자열 캡처입니다. 목록은 50개씩 늘지만 전체 JSON 보고서는 성공한 결과를 모두 담습니다.

  • 최신 치환 결과가 올바른 Unicode이며 100000 UTF-16 단위 이내일 때만 입력으로 사용합니다. 미리보기 후 적용하고 되돌리면 이전 입력·옵션·결과를 복원합니다.

문자열을 살피는 네 가지 작업

매칭과 캡처

(Ada) (Lovelace)의 전체 매치는 Ada Lovelace이고 그룹 1과 2는 각각의 필드입니다. d로 그룹 범위를 확인합니다. 후방 탐색 캡처는 전체 범위 밖에 있을 수도 있습니다.

치환 미리보기

(?<year>\d{4})-(?<month>\d{2})에 $<month>/$<year>를 사용하면 2026-09가 09/2026으로 바뀝니다. g의 유무를 비교한 뒤 원문에 적용하세요.

그룹 선택 추출

ID:(\d+)에서 그룹 1은 ID:42의 42를 추출하고 0은 전체를 유지합니다. 매치가 있을 때만 그룹 존재를 검사하며 없으면 오류가 납니다.

캡처를 포함한 분할

a,b를 (,)로 나누면 ["a", ",", "b"]가 됩니다. 캡처한 구분자도 남습니다. (,)|(;) 같은 분기는 미참여 그룹 때문에 null을 추가할 수 있으며 빈 문자열도 제거하지 않습니다.

동작과 제한

브라우저 JavaScript만 실행
현재 브라우저의 JavaScript RegExp만 실행합니다. PCRE나 Python은 해당 런타임에서 확인해야 합니다. 지원 플래그를 직접 감지하며 보고서의 사용자 에이전트는 정확한 엔진 버전이 아닙니다.
빈 매치와 Unicode
빈 본문과 패턴도 유효합니다. 처음과 지운 뒤에는 대기합니다. 전체 검색의 너비 0 매치는 u/v에서 코드 포인트, 나머지에서는 UTF-16 단위로 전진합니다. 위치는 0부터 시작하는 UTF-16 단위이며 끝 위치는 제외합니다. 그룹 위치는 d가 필요하고 후방 탐색의 캡처는 전체 매치 밖에 있을 수 있습니다.
상한이 있는 전체 결과
UTF-16 단위 제한: 본문 100000, 패턴 2000, 치환 입력 10000, 치환 결과 1000000, 보고서 4000000. 결과 최대 10000개. 초과 시 전체 작업 실패. 제한 시간 2초.
문자열 보존 내보내기
JSON 보고서는 문자열을 이스케이프해 짝 없는 서로게이트도 보존합니다. TXT는 Unicode가 올바른 치환 결과에서만 제공합니다. 따옴표 미리보기가 20000 UTF-16 단위에서 끝나도 내보내기는 전체입니다.
제한된 설명과 변경 복원
제한된 토큰 안내이며 완전한 구문 분석, AI 해설 또는 성능 분석이 아닙니다. 문자 클래스, 낯선 이스케이프나 복잡한 구조 이후는 통째로 미해석 처리합니다. 최신 치환 결과가 올바른 Unicode이며 100000 UTF-16 단위 이내일 때만 입력으로 사용합니다. 미리보기 후 적용하고 되돌리면 이전 입력·옵션·결과를 복원합니다.

자주 묻는 질문: 정규식 테스터

어떤 언어의 정규표현식을 실행하나요?

브라우저의 JavaScript RegExp를 사용합니다. 정규식 테스터는 Python이나 PCRE를 실행하지 않습니다. 같은 표기라도 대상 언어에서 다시 확인해야 합니다.

g, i, m을 켜면 무엇이 달라지나요?

g는 전체 매치, i는 대소문자 무시, m은 행 단위의 ^와 $입니다. 점이 줄바꿈을 포함하게 하려면 s를 사용하세요. u와 v는 서로 배타적인 Unicode 모드입니다.

매칭된 내용의 일부를 추출하려면?

원하는 부분을 괄호로 묶고 추출 작업에서 그룹 번호나 이름을 입력하세요. 0은 전체 매치이고 참여하지 않은 그룹은 null입니다. 치환 문자열에서는 $1이나 $<name>으로 재사용합니다.

왜 너무 많은 글자가 매칭되나요?

*와 +는 기본적으로 가능한 긴 결과를 먼저 시도합니다. *? 또는 +?로 짧은 쪽부터 시도하거나 문자 범위를 좁혀 보세요. 제한된 토큰 설명만으로 복잡한 패턴의 의미를 보증하지는 않습니다.

여러 곳이 맞는데 하나만 보이는 이유는?

g가 꺼져 있으면 매칭·추출·치환은 첫 결과에서 멈춥니다. 모두 처리하려면 g를 켜세요. split은 예외로 g 없이도 전체 본문을 나누고 캡처한 구분자도 반환합니다.

더 궁금한 점이 있나요?

직접 사용하기: 정규식 테스터

정규식 테스터의 날짜나 Unicode 예제를 실행하고 자신의 텍스트로 바꿔 보세요.

코드에 반영하기 전에 전체 JSON 보고서에서 결과를 확인하세요.

기본적으로 편집 후 350ms에 실행합니다. 자동을 끄면 버튼 또는 Ctrl/Cmd+Enter로 실행합니다. 수정 즉시 이전 결과의 내보내기를 막습니다.