정규식 테스터

매치 하이라이트와 캡처 그룹 상세를 포함하여 실시간으로 정규식을 테스트합니다. 무료, 브라우저에서 처리.

  • 브라우저에서 처리
  • 데이터가 브라우저 밖으로 나가지 않습니다
  • 무료 · 회원가입 불필요
양쪽 슬래시 없이 JavaScript 정규식을 입력하세요. 입력이나 플래그를 바꾸면 300밀리초 후 실행합니다. 브라우저 Worker는 최대 2초 동안 실행하며 「취소」로 중지합니다. 시간 초과나 취소에는 완전한 결과가 없습니다.
g를 켜면 모든 일치를 찾고, 끄면 첫 일치만 반환합니다. 바꾼 뒤 300밀리초 후 다시 실행합니다.
대소문자를 구분하지 않습니다. 악센트는 구분하므로 cafe와 i는 CAFE에 일치하지만 Café에는 일치하지 않습니다.
^와 $가 각 줄의 시작과 끝에 일치하게 합니다. m을 끄면 전체 텍스트의 시작과 끝을 뜻합니다.
점이 줄바꿈에도 일치하게 합니다. ^와 $의 의미는 바뀌지 않습니다.
테스트할 텍스트를 입력하거나 붙여 넣으세요. 변경하면 이전 실행을 멈추고 300밀리초 후 다시 실행합니다. 도구 안에서 Ctrl+L(Mac은 ⌘+L)을 누르면 두 입력과 결과를 지우며 플래그는 유지합니다.

패턴과 테스트 문자열을 입력하면 강조 표시와 캡처 그룹을 보여 줍니다.

일치 항목 강조 처음 100,000 UTF-16 단위와 최대 1,000개 강조 표시를 보여 줍니다. 긴 텍스트는 영역 안에서 스크롤됩니다. 잘못된 패턴은 강조 없이 텍스트를 표시합니다.
일치 상세 완료된 실행은 모든 일치를 셉니다. 목록은 처음 100개와 각각 20개 그룹까지이며 이름 있는 그룹도 번호로 표시합니다. 값마다 1,000 UTF-16 단위, 합계 100,000단위까지 표시하고 줄인 부분은 …로 나타냅니다. 인덱스도 UTF-16 단위입니다.
예시·자세한 설명·자주 묻는 질문 실제 출력이 있는 예시, 다른 도구와의 차이, 자주 묻는 질문.

정규식에 대하여

정규식(RegEx)은 문자열의 패턴 매칭을 위한 강력한 미니 언어입니다. 텍스트 검색·추출·치환·유효성 검사에 사용되며, 프로그래밍·데이터 처리·텍스트 편집의 모든 상황에서 활약합니다.

실제 동작 예시

g를 켰을 때 테스터가 돌려주는 결과입니다.

정규식테스트 문자열일치
^01[016789]-?\d{3,4}-?\d{4}$010-1234-5678전체 일치 (휴대전화 번호 형식)
[가-힣]+주문 번호 12345주문, 번호
<.+><a>foo</a><a>foo</a> (탐욕적: 첫 <부터 마지막 >까지)
<.+?><a>foo</a><a>, </a> (게으른 매칭)
(?<=\$)\d+cost $4242 (후방 탐색)
^(?<ts>\S+)\s+(?<level>\w+)\s+(?<msg>.+)$2026-04-07T14:23:01 ERROR connection refused1개. 그룹은 2026-04-07T14:23:01, ERROR, connection refused

정규식은 형식만 확인합니다. ^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$는 2026-02-31도 통과시키므로 날짜는 날짜 라이브러리로 파싱하세요. 휴대전화 정규식도 번호가 실제로 존재하는지는 확인하지 않습니다.

자주 하는 실수

  • 메타 문자 이스케이프 누락. . * + ? ( ) [ ] { } ^ $ | \는 특별한 의미가 있습니다. 마침표 자체는 \.로 씁니다.
  • 여러 줄 텍스트의 ^와 $. m을 끄면 전체 텍스트의 처음과 끝에만 일치합니다.
  • \w는 ASCII만 해당. café 서울에 \w+를 쓰면 caf만 일치하고 한글은 일치하지 않습니다. 한글에는 [가-힣] 같은 범위를 씁니다.
  • 중첩된 수량자. (a+)+$는 일치에 가까운 문자열에서 오래 걸릴 수 있습니다. 네이티브 JavaScript RegExp를 Worker에서 실행하며 전체 제한은 2초입니다. ‘취소’로 중지할 수 있습니다. 시간 초과나 취소 시 완전한 결과는 없습니다. 입력을 바꾸면 이전 실행을 중지합니다.

제한 사항

  • JavaScript 문법만 지원합니다. Python의 (?P<name>...)은 「Invalid group」 오류가 나므로 (?<name>...)로 씁니다. Go(RE2), PCRE, Java용 정규식은 다르게 동작할 수 있습니다.
  • 플래그는 4개. g, i, m, s만 쓸 수 있습니다. u가 없어서 \p{L}은 문자열 p{L}로 해석되고, y, d, v도 쓸 수 없습니다.
  • 그룹은 번호로 표시됩니다. 이름 있는 그룹도 그룹 1, 그룹 2로 나옵니다.
  • 전체 개수, 제한된 미리 보기. 완료된 실행은 모든 일치를 셉니다. 강조 표시는 처음 100,000 UTF-16 단위와 최대 1,000개까지입니다. 목록은 처음 100개와 일치마다 20개 그룹까지이며 값마다 1,000단위, 합계 100,000단위까지 표시합니다. 줄인 값에는 …를 붙입니다. index는 UTF-16 단위로 앞의 이모지 하나마다 2씩 늘어납니다. Worker 지원이 필요합니다.
  • 치환은 지원하지 않습니다. 테스터는 일치를 찾기만 하고 replace()는 실행하지 않습니다.

FAQ

어떤 정규식 플레이버를 사용합니까?

JavaScript의 네이티브 RegExp 엔진을 사용합니다. 역참조(\1, \k<name>)와 전방·후방 탐색은 쓸 수 있지만, PCRE의 재귀 패턴과 소유 수량자는 쓸 수 없습니다.

플래그(g, i, m 등)를 사용할 수 있습니까?

네. 체크박스로 g(전역), i(대소문자 무시), m(여러 줄), s(dotAll) 네 가지를 조합해 설정할 수 있습니다. u·y·d·v 플래그는 없습니다.

캡처 그룹이란 무엇입니까?

괄호()로 감싼 패턴의 일부로, 매치의 특정 부분을 추출하는 데 사용합니다. 목록에는 처음 100개 매치와 매치마다 20개 그룹까지의 내용을 표시합니다. 줄인 값에는 …를 붙입니다.

데이터가 서버로 전송됩니까?

아니요. 모든 정규식 처리는 브라우저 내에서 완전히 이루어집니다.