C.W.K.
Stream
Lesson 03 of 12 · published

0번 또는 1번: ?

~6 min · quantifier, optional

Level 0패턴 호기심
0 XP0/90 lessons0/15 achievements
0/100 XP to next level100 XP to go0% complete

이전 거를 optional 로

? 는 "이전 요소, 0번 또는 1번" 의미. 즉 optional. colou?rcolorcolour 둘 다 매칭 — 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-이상) 헷갈리지 마.

Code

Optional 조각용 ?·python
import re

# Optional 'u' — color OR colour
re.findall(r'colou?r', 'color colour colur')
# ['color', 'colour']  — colur (u 1개 + r) 가 colour 로 매칭

# Optional 프로토콜
re.findall(r'https?://[\w.]+', 'visit http://a.com and https://b.com')
# ['http://a.com', 'https://b.com']

# Optional 부호
re.findall(r'-?\d+', '-5 and 7 and -100')
# ['-5', '7', '-100']

# 영국 vs 미국 철자
re.findall(r'analy[sz]e', 'analyze the analyse')
# ['analyze', 'analyse']

External links

Exercise

네 가지 철자 다 매칭하는 패턴 한 개: 'organize', 'organise', 'organization', 'organisation'. 테스트. 그 다음 영국식 'organis' 단독 (suffix 없이) 추가, 패턴이 우연히 매칭하는지 확인.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.