프리미티브를 실전 패턴으로 조립
이제 놀랄 만큼 강력한 패턴 쓸 도구 충분히 가짐. 트랙 3 의 *+? quantifier 모르고도 이전 힌트의 {n} 와 배운 클래스만으로 이미 가능.
미국 전화번호
모양: 3 숫자, 하이픈, 3 숫자, 하이픈, 4 숫자. 패턴: \d{3}-\d{3}-\d{4}. 전체 문자열 검증엔 ^...$ 앵커, 텍스트 안 검색이면 그대로.
ISO 날짜
모양: 4 숫자, 하이픈, 2 숫자, 하이픈, 2 숫자. 패턴: \d{4}-\d{2}-\d{2}. 같은 조립 원칙.
주의: 이건 9999-99-99 도 매칭. 정규식은 모양 검증, semantics 아님. 날짜가 진짜인지 확인 필요면 정규식 매칭 후 date 라이브러리.
단순 이메일 (모양만)
진짜 이메일 정규식은 유명한 저주 (가장 긴 발표된 게 6,000 자 넘음). 99% 케이스엔 이거로 충분: [\w.+-]+@[\w-]+\.[\w.-]+
왼쪽에서 오른쪽으로 읽기: word 글자 또는 .+- (local part), 리터럴 @, word 글자 또는 - (domain), 리터럴 점, word 글자 또는 .- (TLD, 서브도메인 허용).
이게 가르치는 패턴
실전 정규식은 이렇게 빌드:
- 모양을 한국어/영어로 묘사 ("3 숫자, 하이픈, 3 숫자, 하이픈, 4 숫자").
- 각 조각을 맞는 가장 작은 character class 또는 shorthand 로 교체 (
\d{3}, 그 다음-리터럴). - 검증이면 앵커, 검색이면 열어두기.
- 입력 셋으로 테스트: known-good, known-bad, edge case.
트랙 6 와 7 에서 quantifier + group 추가해 수십 번 반복. 멘탈 모션은 같음.