Regex Cheat Sheet: 실제 작업의 90%를 처리하는 10가지 패턴

발행: (2026년 3월 5일 오후 08:45 GMT+9)
5 분 소요
원문: Dev.to

Source: Dev.to

알아두면 좋은 여섯 가지 문자

\d  →  any digit (0-9)
\w  →  any word character (letter, digit, underscore)
\s  →  any whitespace (space, tab, newline)
\D  →  any NON-digit
\W  →  any NON-word character
\S  →  any NON-whitespace

대문자는 역값을 의미합니다. 이것이 전체 패턴입니다.

수량자

+      one or more
*      zero or more
?      zero or one (optional)
{3}    exactly 3
{2,5}  between 2 and 5
{3,}   3 or more

*+의 차이는 중요합니다: \d*는 빈 문자열도 매치합니다(숫자가 0개여도 괜찮음). \d+는 최소 하나의 숫자가 필요합니다. 확실히 모르겠다면 +를 사용하세요.

가장 많이 복사‑붙여넣는 10가지 패턴

1. 이메일

[\w.-]+@[\w.-]+\.\w{2,}

RFC‑완벽하지는 않지만, 실제 이메일을 처리하는 데 충분합니다.

const emails = text.match(/[\w.-]+@[\w.-]+\.\w{2,}/g);

2. URL

https?:\/\/[\w\-._~:\/?#\[\]@!$&'()*+,;=%]+

s?가 “s”를 선택적으로 만들므로 httphttps 모두를 잡아냅니다.

const urls = text.match(/https?:\/\/[\w\-._~:\/?#\[\]@!$&'()*+,;=%]+/g);

3. 미국 전화번호

\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}

123-456-7890, (123) 456-7890, 123.456.7890, 1234567890 등을 처리합니다.

4. IP 주소 (IPv4)

\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b

\b 단어 경계가 중요합니다. 없으면 더 긴 문자열 안의 숫자까지 매치될 수 있습니다.

5. 날짜 (YYYY‑MM‑DD)

\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])

형식을 검증하고 월은 01‑12, 일은 01‑31인지 확인합니다.

6. 헥스 색상

#(?:[0-9a-fA-F]{3}){1,2}\b

짧은 #fff와 긴 #ff00aa 형식을 모두 매치합니다.

7. 큰따옴표 사이의 모든 내용

"([^"]*)"

캡처 그룹 ([^"]*)이 내용을 잡아냅니다. [^"]*는 “따옴표를 제외한 모든 문자, 0번 이상”이라는 뜻입니다.

8. 전체 단어 매치

\bword\b

\b는 단어 경계 앵커입니다. \bcat\b는 “cat”은 매치하지만 “catch”나 “concatenate”는 매치하지 않습니다.

9. 선택적 소수점이 있는 숫자

-?\d+\.?\d*

42, 3.14, -7, -0.5 등을 매치합니다.

10. 여러 개의 공백 (정리용)

\s{2,}

두 개 이상 연속된 공백 문자를 찾습니다. 한 개의 공백으로 교체합니다.

const clean = text.replace(/\s{2,}/g, ' ');

자주 보는 세 가지 실수

1. 마침표를 이스케이프하지 않음. .어떤 문자와도 매치합니다. \.은 실제 마침표와만 매치합니다.

2. 탐욕적(greedy) vs 비탐욕적(lazy). 문자열 "hello" and "world"".*"를 적용하면 첫 번째 따옴표부터 마지막 따옴표까지 전체 "hello" and "world"를 매치합니다. 가장 짧게 매치하려면 ".*?"를 사용해 "hello""world"를 각각 별도로 잡을 수 있습니다.

3. g 플래그를 빼먹음. 플래그를 넣지 않으면 첫 번째 매치만 반환됩니다. 전체 매치를 원한다면 g를 추가하세요.

// 첫 번째 매치만
'abc 123 def 456'.match(/\d+/);    // ["123"]

// 모든 매치
'abc 123 def 456'.match(/\d+/g);   // ["123", "456"]

직접 사용해 보기

실시간 매치 하이라이트와 내장 치트 시트를 제공하는 regex tester를 만들었습니다. 패턴과 텍스트를 붙여넣으면 즉시 매치를 확인할 수 있습니다. 브라우저에서 실행되며, 데이터는 저장되지 않습니다.

전체 치트 시트(lookahead/lookbehind 및 더 많은 예제 포함)는 다음에서 확인하세요.

0 조회
Back to Blog

관련 글

더 보기 »

IRIX 6.5.7M (sgi) 소스 코드

- AI CODE CREATION GitHub Copilot: AI로 더 나은 코드를 작성하세요 https://github.com/features/copilot - GitHub Spark: 지능형 앱을 구축하고 배포하세요 https://github.co...