이전 거를 optional 로
? 는 "이전 요소, 0번 또는 1번" 의미. 즉 optional. colou?r 는 color 와 colour 둘 다 매칭 — u 가 있어도 없어도.
이건 엄청 흔한 패턴. 세상의 철자 변형 절반이 잘 박힌 ? 한 개로 처리돼.
흔한 사용
- Optional 프로토콜:
https?://example.com은 http:// 와 https:// 둘 다 매칭. - Optional 부호:
-?\d+는 부호 있는/없는 정수 매칭. - Optional 국가 코드:
(\+1)? \d{3}-\d{4} - 영국 vs 미국 철자:
analy[sz]e,colou?r,cent(er|re).
? 에 두 번째 의미 (7강 예고)
미리 경고: ? 가 다른 quantifier 바로 뒤에 오면 의미 변경. *?, +?, ??, {n,m}? 다 lazy quantifier (7강에서 다룸). 같은 글자가 컨텍스트 따라 두 역할. x? (optional x) 와 x*? (lazy 0-이상) 헷갈리지 마.