Regex 이해하기: 가장 쉬운 가이드

발행: (2025년 12월 2일 오후 03:59 GMT+9)
4 min read
원문: Dev.to

Source: Dev.to

정규식이란?

  • 문자열에서 특정 패턴을 찾고, 바꾸고, 검증하고, 추출하는 데 사용되는 패턴 매칭 도구입니다.
  • 흔히 쓰이는 경우: 숫자 찾기, 이메일 검증, 알파벳 필터링, 특수 문자 제거, 날짜·전화번호·ID 등 추출 등.

JavaScript에서 정규식 구문

JavaScript에서는 정규식을 슬래시 사이에 작성합니다:

/pattern/flags

예시

/[0-9]+/g

구성 요소

부분의미
/정규식 시작
[0-9]+패턴 (하나 이상의 숫자)
/정규식 종료
g플래그 – 전역 검색 (모든 매치를 찾음)

문자 집합

정규식에서 가장 중요한 부분은 문자 집합([ ])입니다. 대괄호 안에 넣은 문자 중 하나라도 일치하면 매치됩니다.

패턴의미
[0-9]모든 숫자
[a-z]소문자 a‑z
[A-Z]대문자 A‑Z
[a-zA-Z]모든 알파벳 문자
[0-9-]숫자 또는 하이픈

팁: 이 다섯 가지 패턴만 숙지해도 필요한 내용의 약 60 %를 알 수 있습니다.

수량자

수량자는 패턴이 몇 번 반복될지를 결정합니다.

기호의미예시설명
+1회 이상[0-9]+하나 이상의 숫자
*0회 이상a*“a”가 없을 수도, 있을 수도 있음
?0 또는 1회colou?r“color” 또는 “colour”와 매치

앵커

앵커는 문자열 내에서 매치 위치를 지정합니다.

앵커의미
^문자열 시작
$문자열 끝

예시

/^[0-9]+/

→ 문자열은 숫자로 시작해야 합니다.

플래그

플래그는 닫는 슬래시 뒤에 붙으며 정규식 동작을 수정합니다.

플래그이름사용 목적
gGlobal모든 매치를 찾음
iIgnore case대소문자 구분 없이 매치
mMultiline각 줄마다 적용
sDotall.이 줄바꿈 문자도 매치

예시

/hello/gi

매치되는 문자열: hello, Hello, HELLO, hElLo 등.

실제 활용 예시

1. 숫자 제거

"50-200 metric tonnes".replace(/[0-9]/g, "");
// Output: "-metric tonnes"

2. 숫자 추출 (하이픈 포함)

"50-200 metric tonnes".match(/[0-9-]+/)[0];
// Output: "50-200"

3. 이메일 검증

/^[\w.-]+@[\w.-]+\.\w{2,}$/i.test("user@example.com");
// Returns: true

4. 문자·숫자·공백만 남기기

text.replace(/[^a-zA-Z0-9 ]/g, "");
// 다른 모든 문자 제거

5. 정규식 없이 수동 필터링

let result = "";
for (let ch of str) {
  if (!"0123456789".includes(ch)) {
    result += ch;
  }
}

요약 – 기억해야 할 핵심 규칙

  • 문자 집합 [ ] – 매치할 대상
  • 수량자 + * ? – 반복 횟수
  • 앵커 ^ $ – 문자열 시작·끝
  • 플래그 g i m s – 동작 수정

이 규칙들을 기억하면 정규식 사용이 쉬워집니다.

정규식으로 할 수 있는 일

  • 문자열 정리
  • 사용자 입력 검증
  • 데이터 추출
  • 효율적인 치환 수행

Regex = 패턴 + 반복 + 플래그
이 공식을 마스터하면 정규식이 언제나 간단하게 느껴질 것입니다. 🚀

Back to Blog

관련 글

더 보기 »