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

범위: {n,} 와 {n,m}

~6 min · quantifier, range, bounded

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

n 부터 m 번까지

{} 중괄호는 세 형태 지원:

  • {n} — 정확히 n (4강)
  • {n,} — n 이상, 상한 없음
  • {n,m} — n 이상 m 이하, 포함

패턴 \d{3,4} 는 3 또는 4 숫자. a{2,} 는 a 2개 이상. x{0,5} 는 x 0~5개 (x* 와 비슷하지만 5에서 cap).

알아둘 만한 등가

기본 quantifier 들이 {} 범위의 shortcut:

  • *{0,}
  • +{1,}
  • ?{0,1}

실전 코드에 {0,} 안 써 — * 가 짧음. 하지만 등가 알면 패밀리가 일관되게 느껴져.

Flavor 사마귀: 콤마 공백

대부분 엔진은 {} 안 공백 NO. {3, 5} 공백 있는 건 flavor 마다 다르게 해석 — 어떤 땐 리터럴, 어떤 땐 에러, 거의 절대로 {3,5} 아님. 항상 {n,m} 타이트하게.

Code

범위 quantifier·python
import re

# 3 또는 4 숫자 — 전화 area code 또는 연도
re.findall(r'\b\d{3,4}\b', 'call 415 then 2026 then 90210')
# ['415', '2026']  — 90210 5자리, 매칭 안 됨

# 2 이상 — 중복 글자 run
re.findall(r'(\w)\1{2,}', 'AAAA bbb cccc ddddd')
# ['A', 'b', 'c', 'd']

# 상한 cap — 최대 8 hex 자리
re.findall(r'\b[0-9a-fA-F]{1,8}\b', '0xFF 0xDEADBEEF 0x123456789')
# ['0xFF', '0xDEADBEEF']  — 마지막 9 hex 자리, cap 초과

# 등가
import re
re.match(r'a{1,}', 'aaa').group() == re.match(r'a+', 'aaa').group()  # True

External links

Exercise

Username 검증기 작성: 3-20 글자, 문자+숫자+underscore, 문자로 시작 필수. 'a' (너무 짧음), 'thisis_aLong_username' (OK), 'this_is_way_too_long_for_us' (너무 김), '1starts_wrong' 테스트.

Progress

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

댓글 0

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

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