본문 바로가기
C.W.K.
Stream
Lesson 08 of 10 · published

정규식 읽기 — 천천히, 그룹 먼저, 번역

~10 min · reading, decomposition

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

세 단계로 정규식 읽기

직접 작성하지 않은 정규식을 받았을 때 한 번에 삼키려 하지 마. 세 단계로 나눠 읽어.

1단계: 앵커와 그룹 찾기. ^, $, (...), (?:...), (?=...)를 먼저 찾아. 이 조각들이 패턴의 구조 골격을 보여줘.

2단계: 문자 클래스와 수량자 읽기. 무엇이 반복되는지, 몇 번 반복되는지, 어떤 글자 집합인지 확인해. 그런 다음 조각마다 말로 풀어. [a-z]+는 "하나 이상의 소문자"야.

3단계: 전체를 한 문장으로 읽기. 입으로 설명할 수 있으면 이해한 거야. 설명이 막히면 regex101에 붙여 넣고 설명 패널을 읽어.

따라 읽기

패턴은 ^(\w+)\s+(\d{3,4})$야.

1단계에서 ^...$가 입력 전체를 묶고, 캡처 그룹 두 개가 공백으로 나뉜다는 구조를 잡아.

2단계에서는 \w+를 하나 이상의 단어 문자, \s+를 하나 이상의 공백, \d{3,4}를 3자리 또는 4자리 숫자로 읽어.

3단계에서 한 문장으로 합치면 이래. "단어, 공백, 3~4자리 숫자로만 된 줄을 매칭하고 단어는 그룹 1, 숫자는 그룹 2에 캡처해."

외우지 말고 찾아볼 것

드물게 등장하는 조각은 외우기보다 찾아봐. \p{...} Unicode 범주, (?(name)yes|no) 조건부 패턴, (?>...) 원자 그룹은 존재한다는 것만 알아도 충분해.

Code

실전 패턴 분해·text
패턴: ^([A-Z]{2})-(\d{4})-([A-Z0-9]{6})$

1단계 — 구조:
  ^...$           전체 문자열 매칭
  세 그룹이 리터럴 '-'로 나뉨

2단계 — 조각:
  [A-Z]{2}        정확히 대문자 2개
  -               리터럴 하이픈
  \d{4}           정확히 숫자 4개
  -               리터럴 하이픈
  [A-Z0-9]{6}     정확히 대문자 또는 숫자 6개

3단계 — 문장:
  "XX-1234-AB12CD 모양의 코드야. 접두부는 대문자 2개,
   가운데는 숫자 4개, 접미부는 영숫자 6개로 이루어져."

External links

Exercise

패턴 ^(?:https?:)?//([\w.-]+)(?:/([\w./-]*))?$를 테스터에 붙여 넣기 전에 세 단계로 읽어봐. 한 문장 설명을 적은 다음 regex101의 설명과 대조하고 스스로 점수를 매겨.

Progress

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

댓글 0

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

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