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

캡처 그룹 — 값 빼기

~8 min · capture, extraction

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

왼쪽에서 오른쪽 순서로 번호 슬롯

모든 캡처 그룹은 여는 괄호 위치 기준 왼쪽에서 오른쪽으로 번호. Group 0 은 항상 전체 매칭.

패턴 (\d{4})-(\d{2})-(\d{2}) 입력 2026-05-04:

  • Group 0: 2026-05-04 (전체 매칭)
  • Group 1: 2026
  • Group 2: 05
  • Group 3: 04

그룹 접근

대부분 언어가 번호 그룹에 직접 접근 제공:

  • Python: m.group(1), m.groups() 가 모두 튜플로
  • JavaScript: match[1], match[2]...
  • Go: m[1], m[2]...
  • ripgrep: $1, $2 --replace 모드에서

findall 놀람

Python 의 re.findall 이 그룹과 quirky 동작: 그룹 NO 면 전체 매칭 반환; 그룹 ONE 이면 그 그룹만 반환; 그룹 MULTIPLE 이면 튜플 반환. 영리하려 하지 마 — 예측 가능한 그룹 접근엔 re.finditer 사용.

Code

캡처 그룹 작업·python
import re

# 날짜 파싱
pattern = r'(\d{4})-(\d{2})-(\d{2})'
m = re.match(pattern, '2026-05-04')
print(m.group())     # 전체 매칭
# '2026-05-04'
print(m.group(1))    # 연도
# '2026'
print(m.groups())    # 모든 그룹 튜플로
# ('2026', '05', '04')

# 그룹 있는 findall 동작
re.findall(r'(\d+)-(\d+)', '12-34 56-78')
# [('12', '34'), ('56', '78')]  — 매칭당 튜플

# finditer 가 더 예측 가능
for m in re.finditer(r'(\d+)-(\d+)', '12-34 56-78'):
    print(m.group(1), m.group(2))
# 12 34
# 56 78

External links

Exercise

ORDER #1138 — Pippa — $42.00 같은 줄에서 주문 ID, 고객 이름, 합계 추출하는 패턴 작성. 캡처 그룹 셋 사용. m.groups() 가 순서대로 세 조각 반환하는지 확인.

Progress

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

댓글 0

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

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