본문으로 건너뛰기

정규식 테스터

정규표현식 패턴을 테스트하고 매칭 결과를 실시간으로 확인하는 무료 온라인 도구입니다.

//

플래그

  • g - 전역: 모든 일치 항목 찾기
  • i - 대소문자 구분 안 함
  • m - 다중행: ^와 $가 줄바꿈 매칭
  • s - 점 전체: . 이 줄바꿈 매칭
  • u - 유니코드: 전체 유니코드 지원

일반 문법

  • . - 모든 문자
  • \d - 숫자 (0-9)
  • \w - 단어 문자 (a-z, A-Z, 0-9, _)
  • \s - 공백
  • * - 0개 이상
  • + - 1개 이상
  • ? - 0개 또는 1개
  • [abc] - a, b, c 중 하나
  • (abc) - 캡처 그룹

주요 기능

  • 실시간 매칭: 입력 즉시 결과 확인
  • 5가지 플래그: g, i, m, s, u 지원
  • 하이라이트 표시: 매칭된 부분 시각적 표시
  • 그룹 캡처: 캡처 그룹 상세 정보 제공
  • 일반 패턴: 자주 사용하는 패턴 제공
  • 위치 정보: 각 매칭의 시작/끝 위치 표시

플래그 설명

플래그이름설명
gGlobal모든 매칭 찾기 (첫 번째만이 아님)
iIgnore Case대소문자 구분 안 함
mMultiline^와 $가 각 줄의 시작/끝 매칭
sDotall.이 줄바꿈도 매칭
uUnicode유니코드 전체 지원

일반 패턴 예제

이메일

\w+@\w+\.\w+

매칭: user@example.com, admin@test.org

URL

https?://[\w\-._~:/?#\[\]@!$&'()*+,;=]+

매칭: http://example.com, https://site.com/page

전화번호

\+?\d{1,4}?[-.\s]?\(?\d{1,3}?\)?[-.\s]?\d{1,4}[-.\s]?\d{1,4}[-.\s]?\d{1,9}

매칭: 010-1234-5678, +82-10-1234-5678

헥스 컬러

#[0-9a-fA-F]{6}|#[0-9a-fA-F]{3}

매칭: #FF5733, #f00

날짜 (YYYY-MM-DD)

\d{4}-\d{2}-\d{2}

매칭: 2024-01-15

IP 주소

\b(?:\d{1,3}\.){3}\d{1,3}\b

매칭: 192.168.0.1

캡처 그룹

기본 그룹

패턴: (\d{4})-(\d{2})-(\d{2})
텍스트: 2024-01-15

그룹 1: 2024
그룹 2: 01
그룹 3: 15

이름 있는 그룹

패턴: (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})
텍스트: 2024-01-15

그룹 year: 2024
그룹 month: 01
그룹 day: 15

실용 예제

HTML 태그 추출

<(\w+)[^>]*>

텍스트:

<div class="box">Content</div>
<p>Paragraph</p>

매칭: div, p

변수명 검증

^[a-zA-Z_$][a-zA-Z0-9_$]*$

유효: myVar, _temp, $value 무효: 123abc, my-var

숫자 추출

-?\d+\.?\d*

매칭: 123, -45, 67.89, -0.5

단어 경계

\bcat\b

텍스트: "cat category catch" 매칭: cat (첫 번째만)

고급 패턴

Lookahead (전방 탐색)

# 양의 전방 탐색
\d+(?= won)
텍스트: "100 won, 200 dollars"
매칭: 100

# 음의 전방 탐색
\d+(?! won)
텍스트: "100 won, 200 dollars"
매칭: 200

Lookbehind (후방 탐색)

# 양의 후방 탐색
(?<=\$)\d+
텍스트: "$100, 200 won"
매칭: 100

# 음의 후방 탐색
(?<!\$)\d+
텍스트: "$100, 200 won"
매칭: 200

비탐욕적 매칭

# 탐욕적
<.*>
텍스트: "<div>test</div>"
매칭: <div>test</div> (전체)

# 비탐욕적
<.*?>
텍스트: "<div>test</div>"
매칭: <div>, </div> (각각)

성능 팁

1. 구체적인 패턴 사용

# 느림
.*

# 빠름
[a-z]+

2. 앵커 활용

# 느림
\d{4}-\d{2}-\d{2}

# 빠름
^\d{4}-\d{2}-\d{2}$

3. 비캡처 그룹

# 캡처 (느림)
(\d+)

# 비캡처 (빠름)
(?:\d+)

자주 하는 실수

1. . 문자 리터럴

# 잘못됨: . 는 모든 문자
example.com

# 올바름: \. 로 이스케이프
example\.com

2. *+ 혼동

# *: 0개 이상 (매칭 안될 수도)
ab*c → ac, abc, abbc

# +: 1개 이상 (반드시 매칭)
ab+c → abc, abbc (ac는 매칭 안됨)

3. 그룹 번호

패턴: (\d+)-(\d+)
텍스트: 123-456

그룹 0: 123-456 (전체 매칭)
그룹 1: 123
그룹 2: 456

디버깅 팁

  1. 단계적 테스트: 복잡한 패턴을 작은 부분으로 나눠서 테스트
  2. 플래그 확인: 원하는 플래그가 활성화되어 있는지 확인
  3. 이스케이프: 특수문자 앞에 \ 추가
  4. 온라인 도구: 여러 정규식 테스터에서 교차 확인

관련 도구