피드로 돌아가기
Regex Cheat Sheet: Complete Guide for Developers
Dev.toDev.to
Backend

Regex Cheat Sheet: Complete Guide for Developers

정규표현식 레퍼런스 가이드가 50줄의 문자열 파싱 로직을 1줄의 regex로 대체 가능함을 설명

楊東霖2026년 3월 25일15intermediate

Context

개발자들이 정규표현식을 제대로 이해하지 못해 데이터를 무음으로 손상시키거나 엣지 케이스를 놓치는 상황이 발생한다. 정규표현식은 높은 레버리지를 가진 기술임에도 불구하고 체계적인 레퍼런스가 부족했다.

Technical Solution

  • 핵심 문법 정리: 이스케이핑, 문자 클래스(character classes), 한정자(quantifiers), 앵커(anchors) 4가지 기본 요소 설명
  • Greedy vs Lazy 수량자 비교: .*는 최대한 많이 매칭하고 .*?는 최소한으로 매칭하는 차이점 명시
  • 그룹 기능 세분화: 캡처 그룹 (...), 비캡처 그룹 (?:...), 명명 캡처 그룹 (?<name>...) 3가지 타입 제시
  • Lookahead/Lookbehind 패턴 도입: (?=...), (?!=...), (?<=...), (?!=...) 4가지 lookaround 연산자로 위치 기반 매칭 설명
  • 35개 이상의 실전 패턴 제공: 이메일, URL, 전화번호, UUID, HTML 태그, IP 주소 등 복사-붙여넣기 가능한 코드 예제 포함
  • JavaScript 및 Python 구현 차이 명시: 명명 그룹의 문법 차이(?<name>vs ?P<name>) 및 플래그 사용법(.match() vs re.match()) 구체화
  • DevPlaybook Regex Tester 도구 제시: 다중 테스트 문자열, 그룹 캡처 하이라이팅, 플래그 전환, URL 공유 기능 제공
  • 일반적인 5가지 실수 사례 제시: Greedy 매칭으로 HTML 전체 매칭, 이스케이핑 누락, 경계 조건 미확인 등 오류 패턴과 수정 방법 설명
  • 엣지 케이스 테스트 목록 제시: 빈 문자열, Unicode 문자, 매우 긴 문자열, 특수문자만 있는 문자열, 줄바꿈 포함 문자열 5가지 검증 케이스 명시

Key Takeaway

정규표현식은 앵커, 문자 클래스, 한정자, 그룹의 4가지 기본 개념을 익히면 대부분의 패턴을 읽고 작성할 수 있다. 증분적으로 패턴을 작성하면서 각 컴포넌트를 테스트하고, 매칭되어야 하는 경우와 되지 않아야 하는 경우 모두 검증하는 것이 신뢰성 있는 워크플로우다.


HTML/XML을 파싱하거나 구조화된 텍스트를 추출하는 개발자는 `<div>.*?</div>` 형태의 Lazy 수량자를 Greedy 수량자 대신 사용하면 구분자 사이의 첫 번째 콘텐츠만 정확히 추출할 수 있다. 날짜, 전화번호, UUID 같은 형식 검증이 필요한 경우 아티클의 35개 실전 패턴을 복사하거나, 명명 캡처 그룹을 사용해 `(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})` 형태로 추출 값을 구조화하면 후속 데이터 처리가 간결해진다.

원문 읽기