본문 바로가기
C.W.K.
Stream
Lesson 04 of 12 · published

범위 [a-z] [A-Z] [0-9] — 하이픈 쓰는 법

~6 min · ranges, ascii

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

두 문자 사이의 하이픈은 범위를 뜻해

[a-z]는 소문자 a부터 z까지 한 글자를 허용해. 엔진은 이 범위를 ASCII나 Unicode 코드 포인트의 순서에 따라 해석해.

자주 쓰는 기본 범위는 세 가지야.

  • [0-9]는 ASCII 숫자 하나를 찾고
  • [a-z]는 ASCII 소문자 하나를 찾고
  • [A-Z]는 ASCII 대문자 하나를 찾아.

범위는 이어 붙일 수도 있어. [a-zA-Z0-9]는 영문자나 숫자 하나, [a-fA-F0-9]는 16진수에 쓰이는 문자 하나를 허용해. [가-힣]는 완성형 한글 음절 블록을 가리켜.

[A-z]처럼 지름길을 만들지는 마

대문자 Z와 소문자 a 사이에는 [, \, ], ^, _, ` 같은 기호도 있어. 그래서 영문자를 찾을 때는 [A-z]가 아니라 [A-Za-z]처럼 두 범위를 분명히 적어야 해.

하이픈 자체를 찾는 위치도 정해져 있어

문자 클래스에서 하이픈을 문자 그대로 쓰려면 [-a-z]처럼 맨 앞에 두거나 [a-z-]처럼 맨 뒤에 둬. [a\-z]처럼 이스케이프하는 방법도 있지만, 첫 위치나 끝에 두면 범위와 헷갈릴 여지가 더 적어.

Code

범위 사용 예·python
import re

# 4자리 연도
re.findall(r'[0-9]{4}', 'born 1989, today 2026')
# ['1989', '2026']

# 16진수 색상
re.findall(r'#[0-9a-fA-F]{6}', 'theme #FF8FBE on #000000')
# ['#FF8FBE', '#000000']

# 한글 음절 블록
re.findall(r'[가-힣]+', '안녕 hello 세상')
# ['안녕', '세상']

# 버그: [A-z]는 ASCII 구두점도 포함해
re.findall(r'[A-z]', 'A_z`')
# ['A', '_', 'z', '`'] — '_'와 '`'도 잡힘

External links

Exercise

대문자와 숫자만 쓰는 미국 번호판의 글자 하나를 매칭하는 가장 작은 문자 클래스를 써봐. 다음에는 숫자와 한글을 쓰는 한국 번호판용 클래스를 만들어. 두 패턴을 비교하고 어느 쪽에 Unicode 지원이 필요한지 설명해.

Progress

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

댓글 0

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

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