본문으로 건너뛰기
yutils
예시

정규식 + 테스트 입력

정규식: \b[\w.+-]+@[\w-]+\.[\w.-]+\b
플래그: g
테스트: 문의는 hello@yutils.dev, 영업은 sales+korea@yutils.dev 로 보내세요

매치 결과

매치 2건
- hello@yutils.dev (pos 5, len 14)
- sales+korea@yutils.dev (pos 25, len 22)

참고

g 플래그가 없으면 첫 매치만 노출됩니다. 캡처 그룹을 쓰면 $1, $2 인덱스로 부분 결과도 같이 표시됩니다.

사용법 / 자주 묻는 질문

이런 경우 사용하세요

  • 이메일·URL·전화번호 등 패턴 추출 정규식 빠르게 검증
  • JavaScript / Node.js 의 RegExp 동작 그대로 테스트 (구현 분기 X)
  • 캡처 그룹별 결과 확인 — $1, $2 ... 인덱스로 노출
  • g 플래그로 모든 매치 한 번에 보기, i 플래그로 대소문자 무시
  • 정규식 디버깅 — 어디서 매치되는지 위치(pos)와 길이까지 확인

자주 묻는 질문

Q.Python / Java / PHP 정규식과 호환되나요?
A.엔진별 차이가 있습니다. 이 도구는 JavaScript RegExp 기준 — lookbehind, named group 등 일부 기능은 다른 언어에서 작동 X 또는 다른 문법. 다언어 호환을 원하면 PCRE 호환 도구를 별도로 검토하세요.
Q.패턴이 너무 오래 걸려요 (catastrophic backtracking)
A.중첩 반복(예: `(a+)+`)이나 alternation 가 backtracking 폭발의 원인. atomic group(JS 미지원) 대신 possessive quantifier 대안 또는 패턴 재설계가 필요합니다.
Q.캡처 그룹 vs non-capturing group?
A.그룹화만 하고 결과에 안 나타나게 하려면 `(?:...)` 사용. 캡처가 필요 없는데 `(...)` 쓰면 메모리·성능 약간 낭비.
재미있는 사실
  • 정규식의 수학적 토대는 1956년 Stephen Kleene이 만들었습니다. `a*` 같은 표기에서 별표(Kleene star)가 그의 이름에서 왔어요 — "a를 0번 이상 반복". 정규식이 "regex"라는 줄임말이 되기 한참 전, 컴퓨터 자체가 거의 없던 시절의 수학적 발견.

    Wikipedia — Stephen Kleene
  • Jamie Zawinski의 유명한 명언: "문제가 생겨서 정규식을 쓰면 된다고 생각하는 사람이 있다. 이제 그들은 두 개의 문제를 갖게 된다." 1997년에 한 농담이지만 지금도 SO·트위터에서 매주 인용됩니다.

    Wikipedia — Zawinski
  • 정규식 엔진은 한 종류가 아닙니다 — POSIX BRE, POSIX ERE, PCRE, Perl, Python `re`, JavaScript RegExp 등 변종이 많고 lookbehind·named group·atomic group 지원 여부가 모두 다릅니다. 이 도구는 JavaScript RegExp 기준이라 Python regex 와는 일부 결과가 다를 수 있습니다.

    Wikipedia — Regex 표준