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

리터럴 글자 — 기본값

~6 min · literals, fundamentals

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

패턴 대부분은 리터럴이야

트랙 1에서도 짚었지만 기초라서 한 번 더 붙잡자. 패턴 안의 글자 가운데 14개 메타문자가 아닌 것은 모두 리터럴이야. 자기 자신을 매칭해. 규칙은 이게 끝이야.

패턴 hello는 부분 문자열 hello를 매칭하고, 2026-05-04는 같은 날짜 문자열을 매칭해. The quick brown fox도 그대로 같은 문장을 찾지.

대소문자를 구분하는 게 기본이야

기본적으로 catCat이나 CAT을 매칭하지 않아. 대소문자를 무시하려면 JavaScript·PCRE의 i, Python의 re.IGNORECASE, 여러 엔진의 인라인 (?i)처럼 알맞은 플래그를 명시해. 알아서 무시하겠거니 가정하지 마.

공백도 글자 그대로 매칭해

패턴의 리터럴 공백 한 개는 입력의 공백 정확히 한 개를 매칭해. 패턴에 공백이 여러 개라면 입력에도 같은 수가 필요하지. 종류와 개수를 가리지 않고 공백 하나 이상을 받으려면 \s+를 써. 6강에서 다룰 거야.

Unicode 리터럴은 대부분 그대로 동작해

현대 엔진은 Unicode 리터럴을 예상대로 처리해. 패턴 피파는 문자열 피파를 매칭하지. 대소문자 무시, 정규화 형식, 축약 문자 클래스를 섞을 때부터 복잡해져. 리터럴만 쓴다면 원하는 글자를 그대로 입력하면 돼.

Code

리터럴 매칭 — 대소문자와 공백·python
import re

# 기본값은 대소문자를 구분해
re.findall(r'cat', 'Cat scattered cats')
# ['cat']

# 대소문자를 무시하는 플래그
re.findall(r'cat', 'Cat scattered cats', re.IGNORECASE)
# ['Cat', 'cat', 'cat']

# 리터럴 공백 하나는 입력의 공백 하나만 매칭해
re.findall(r'foo bar', 'foo bar  foo  bar')  # 공백 두 개는 매칭되지 않음
# ['foo bar']

# 한글 리터럴도 그대로 동작해
re.findall(r'피파', '피파 안녕 피파')
# ['피파', '피파']

External links

Exercise

정규식 테스터를 열고 'Re: Your invoice #1138' 같은 이메일 제목을 매칭하는 패턴 세 개를 써봐. 대소문자를 구분하는 것, 무시하는 것, 단어 사이에 공백이 더 들어가도 동작하는 것을 하나씩 만들어. 세 번째에는 아직 배우지 않은 수량자가 필요하다는 점도 확인해.

Progress

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

댓글 0

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

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