본문 바로가기
Etc2026년 6월 29일3분 읽기

정규식 입문 — 자주 쓰는 패턴 10개로 시작하기

YS
김영삼
조회 225
정규식 입문 — 자주 쓰는 패턴 10개로 시작하기

핵심 요약

정규식은 "문자 종류(\d, \w) + 개수(+, *, {2,4}) + 위치(^, $)"의 조합이다. 이 세 축만 이해하면 대부분의 패턴을 읽고 쓸 수 있다. 통째로 외우지 말고 조각으로 조립하자.

1. 문자 클래스 (무엇을)

패턴의미
.아무 문자 하나(줄바꿈 제외)
\d / \D숫자 / 숫자 아님
\w / \W단어문자(영숫자_) / 아님
\s / \S공백 / 공백 아님
[abc] / [^abc]a·b·c 중 하나 / 아닌 것

2. 수량자 (몇 개)

패턴의미
*0개 이상
+1개 이상
?0개 또는 1개(선택)
{2,4}2~4개

3. 앵커와 그룹 (어디서)

  • ^ 시작, $ 끝, \b 단어 경계
  • ( ) 그룹·캡처, (?: ) 캡처 안 하는 그룹, | 또는

4. 바로 쓰는 실전 패턴 10

1. 숫자만            ^\d+$
2. 영문 소문자만      ^[a-z]+$
3. 공백 제거 대상      ^\s+|\s+$
4. 한글 포함          [가-힣]
5. 전화(하이픈)       ^\d{2,3}-\d{3,4}-\d{4}$
6. 날짜 YYYY-MM-DD    ^\d{4}-\d{2}-\d{2}$
7. 16진 색상          ^#[0-9a-fA-F]{6}$
8. 태그 제거          <[^>]+>
9. 연속 공백 1칸으로   \s{2,}
10. 파일 확장자        \.(jpg|png|gif)$

5. 초보가 자주 틀리는 것

  • .·*·+·? 등은 특수문자다. 문자 그대로 쓰려면 \. 처럼 이스케이프
  • .*는 탐욕적이라 최대한 많이 먹는다 — 최소 매칭은 .*?
  • 정규식은 검증 도구(regex101 등)에서 실시간으로 확인하며 만들자

자주 묻는 질문

정규식을 외워야 하나요?

아니요. 문자 클래스·수량자·앵커 세 축만 이해하면 나머지는 조합입니다. 자주 쓰는 5~6개만 손에 익히고, 복잡한 건 regex101 같은 도구로 만들어 검증하세요.

탐욕(greedy)과 게으름(lazy)이 뭔가요?

.*는 가능한 한 길게 매칭(탐욕), .*?는 가능한 한 짧게 매칭(게으름)합니다. HTML 태그 하나만 잡고 싶은데 <.*>가 줄 전체를 먹는다면 <.*?>로 바꾸세요.

정규식으로 HTML을 파싱해도 되나요?

간단한 추출은 되지만 중첩 구조가 있는 진짜 파싱은 정규식으로 하면 안 됩니다. 전용 파서(DOMParser 등)를 쓰세요. 정규식은 "형식이 고정된 짧은 문자열" 검증·추출에 적합합니다.

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록