C.W.K.
Stream
Lesson 08 of 10 · published

정규표현식 기초

~15 min · regex, patterns

Level 0창 구경꾼
0 XP0/95 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete

모든 텍스트 도구 안에 사는 패턴 언어

Regex 는 grep, sed, awk, vim, 에디터 검색창, 현대 모든 프로그래밍 언어에 있어. 방언은 달라도 핵심 문법은 같아.

빌딩 블록

  • 아무 글자: .
  • character class: [abc] = a, b, c 중. [^abc] = 그 외. [a-z] = 범위.
  • 사전 정의: \d 숫자 (PCRE), \w 단어, \s 공백.
  • 앵커: ^ 줄 시작, $ 끝. \b 단어 경계 (PCRE).

수량자

  • * — 0 개 이상.
  • + — 1 개 이상 (ERE / PCRE).
  • ? — 0 또는 1 (ERE / PCRE).
  • {3} — 정확히 3.
  • {2,5} — 2 ~ 5.

그룹과 alternation

  • (foo|bar) — foo 또는 bar.
  • (\d+) — 숫자 캡처, \1 로 참조.

BRE vs ERE vs PCRE

  • BRE (basic, grep/sed 기본) — +, ?, {}, () 가 백슬래시 필요.
  • ERE (extended, grep -E, sed -E) — 현대적이고 sane.
  • PCRE (Perl 호환, grep -P) — full power: lookahead, lookbehind, named group.

실전 패턴

  • email 풍: [A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}
  • IP 풍: \b(\d{1,3}\.){3}\d{1,3}\b
  • ISO 날짜: \d{4}-\d{2}-\d{2}
  • 줄 끝 공백: [[:space:]]+$

email 완벽 검증은 악몽. 이 패턴은 강한 필터일 뿐. 인간 언어에 완벽한 regex 쓰려 하지 말기.

Code

grep -E 로 패턴 테스트·bash
echo 'visit https://example.com today' \
  | grep -oE 'https?://[A-Za-z0-9./_-]+'
echo '2026-04-15: meeting at 10:00' \
  | grep -oE '\d{4}-\d{2}-\d{2}'
echo 'a1b2c3' | grep -oE '[a-z][0-9]'

External links

Exercise

파일에서 모든 URL: grep -oE 'https?://[^ ]+' notes.md. 로그에서 모든 ISO 날짜: grep -oE '\d{4}-\d{2}-\d{2}' app.log | sort -u. regex101.com 에서 패턴 분해 확인.

Progress

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

댓글 0

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

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