정규식 테스터

/ /

정규식을 입력하고 테스트할 텍스트를 붙여넣으면, 테스터가 패턴을 실행하고 찾은 모든 일치 항목을 나열합니다. 각 결과는 일치가 어디서 시작되는지와 각 캡처 그룹의 내용을 보여주므로, 패턴이 정확히 무엇을 잡았는지 확인할 수 있습니다. 대소문자 무시, 여러 줄, dotall 플래그를 켜서 패턴의 동작을 바꾸세요.

정규식 테스트 방법

  1. 1

    패턴 입력

    구분 기호 없이 식을 입력하면 테스터가 대신 `/ /` 로 감쌉니다. 유효하지 않은 패턴은 조용히 실패하는 대신 명확한 오류 메시지를 표시합니다.

  2. 2

    플래그 선택

    필요에 맞게 일치시키도록 `i`(대소문자 무시), `m`(여러 줄), `s`(dotall)를 켜세요.

  3. 3

    테스트 텍스트 붙여넣기

    검색할 텍스트를 추가하세요. 테스터는 전체를 훑어 첫 번째만이 아니라 모든 일치 항목을 찾습니다.

  4. 4

    일치 항목 살펴보기

    각 일치 항목은 텍스트에서의 위치(offset), 전체 일치, 그리고 번호가 매겨진 각 캡처 그룹을 보여줍니다.

테스터가 보여주는 것

패턴을 머릿속으로, 혹은 빠른 grep 으로 실행하면 무언가 일치하는지는 알 수 있습니다. 테스터는 여기에 더해 다음을 보여줍니다.

  • 각 일치 항목과 그 위치. 항상 텍스트 전체를 검색하고, 각 일치를 시작 지점의 문자 오프셋과 함께 보고합니다.
  • 어느 그룹이 무엇을 잡았는지. 각 일치는 전체 일치와 번호가 매겨진 캡처 그룹으로 분해되므로, 어떤 (...) 가 기대한 부분을 잡았는지 확인할 수 있습니다.
  • 플래그가 무엇을 바꾸는지. i, m, s 를 켜고 다시 테스트하면, 대소문자 무시·여러 줄·dotall 이 결과를 어떻게 바꾸는지 볼 수 있습니다.

플래그 한눈에 보기

플래그 이름 무엇을 바꾸는가
i 대소문자 무시 Aa 에도 일치하고, 그 반대도
m 여러 줄 ^$ 가 전체 텍스트뿐 아니라 각 줄의 시작과 끝에서 일치
s Dotall . 가 줄바꿈 문자에도 일치

일치는 항상 전역입니다. 테스터는 텍스트의 모든 일치 항목을 반환하므로 별도의 “global” 플래그를 설정할 필요가 없습니다. 패턴은 Unicode 지원이 있는 PCRE 엔진에서 실행되므로, \w\d 같은 클래스가 국제 텍스트에서도 일관되게 동작합니다.

이것이 찾아내도록 돕는 흔한 정규식 문제

증상 흔한 원인
모든 것을 덮는 하나의 거대한 일치 .* 는 탐욕적임; .*?[^"]* 같은 부정 클래스를 사용
^$ 가 한 번만 일치 여러 줄 텍스트에서 m 플래그 누락
. 가 줄바꿈에서 멈춤 s 플래그 누락
캡처 그룹 순서가 예상 밖 중첩된 ( 가 그룹 번호를 밀어냄; 왼쪽에서 오른쪽으로 세기
패턴이 느리게 실행됨 겹치는 선택지 위에 중첩된 *+ 가 심한 백트래킹을 유발

더 빠르고 안전한 패턴을 위한 팁

  • 일치가 처음부터 시작할 때는 ^ 로 앵커를 걸어, 엔진이 문자열 전체를 훑지 않게 하세요.
  • 선택(a|b|c)보다 문자 클래스([abc])를 우선하세요. 문자 클래스는 모든 주요 엔진에서 더 빠릅니다.
  • 종료 문자를 알 때는 탐욕적인 .*[^"]* 같은 부정 클래스로 바꾸면 백트래킹이 없습니다.

자주 묻는 질문

PHP 에 내장된 엔진인 PCRE 로 Unicode 모드를 켠 채 패턴을 실행합니다. \d, \b, 룩어라운드 같은 PCRE 고유 구문은 예상대로 동작합니다. JavaScript, Python 등 다른 언어에서 패턴을 배포하려면, 출시 전에 사소한 구문 차이를 확인하세요.

모든 일치입니다. 테스터는 항상 텍스트 전체를 검색하므로 별도의 “global” 플래그를 설정할 필요가 없습니다. 각 일치는 텍스트에서의 위치와 함께 나열됩니다.

네. 각 일치는 전체 일치와 번호가 매겨진 각 캡처 그룹으로 분해되므로, 각 (...) 가 텍스트의 어느 부분을 잡았는지 확인할 수 있습니다.

i 는 일치를 대소문자와 무관하게 만들고, m^$ 가 각 줄 경계에서 일치하게 하며, s. 가 줄바꿈 문자에 일치하게 합니다. 켜거나 끄고 다시 테스트해 결과를 비교하세요.

테스터는 조용히 일치 0건을 반환하는 대신, 닫히지 않은 대괄호나 끝나지 않은 그룹처럼 문제를 설명하는 명확한 오류 메시지를 표시합니다.

관련 도구

이 도구는 다른 언어로도 제공됩니다