정규식 입문자를 위한

초보자 가이드

정규식이 처음이신가요? 걱정하지 마세요! 기초부터 차근차근 배워서 정규식 마스터가 되어보세요.

1 / 7 레슨 완료
레슨 1

정규식이 뭔가요?

정규식의 개념과 용도를 알아봅시다

정규식(Regular Expression)이란?

정규식은 특정한 패턴을 찾거나 바꿀 때 사용하는 표현식입니다. 예를 들어, 텍스트에서 이메일 주소만 찾고 싶거나, 전화번호 형식을 확인하고 싶을 때 사용합니다.

일상 생활의 예

"010으로 시작하는 11자리 숫자"라고 설명하는 대신, 정규식으로는 ^010\d{8}$로 간단히 표현할 수 있어요!

정규식은 언제 사용하나요?

텍스트 검색

특정 패턴의 텍스트 찾기

입력 검증

이메일, 비밀번호 형식 확인

텍스트 치환

특정 패턴을 다른 텍스트로 바꾸기

간단한 예제

아래 텍스트에서 "cat"이라는 단어를 찾는 정규식을 체험해보세요.

/ /g
The cat sat on the mat. Another cat was sleeping.
2개 매칭 발견
레슨 2

기본 문자 매칭

문자 하나하나를 매칭하는 방법을 배워봅시다

문자 그대로 매칭하기

가장 기본적인 정규식은 찾고 싶은 문자를 그대로 적는 것입니다. 예를 들어 "hello"를 찾고 싶다면 정규식도 그냥 hello라고 적으면 됩니다.

패턴
hello
문자 그대로 "hello" 찾기
매칭
Say hello to the world!
✅ "hello" 매칭됨

대소문자 구분

기본적으로 정규식은 대소문자를 구분합니다. "Hello"와 "hello"는 다른 것으로 인식됩니다.

패턴
Hello
대문자 H로 시작하는 "Hello"
매칭
Hello world! Say hello to everyone.
✅ 대문자 "Hello"만 매칭, 소문자 "hello"는 매칭 안됨

단어와 문장 매칭

공백이 포함된 문장도 그대로 매칭할 수 있습니다.

패턴
good morning
공백 포함 문장 매칭
매칭
Say good morning to your friends!
✅ 공백을 포함한 전체 문장이 매칭됨

연습해보기

기본 문자 매칭을 연습해보세요!

I have a dog and a cat. My dog is very friendly. The cat likes to sleep.
설명: 찾고 싶은 문자나 단어를 그대로 입력해보세요!
레슨 3

특수 문자와 이스케이프

점(.), 별표(*) 등 특별한 의미를 가진 문자들

점(.) - 모든 문자

점(.)은 줄바꿈을 제외한 모든 문자를 의미합니다. 문자, 숫자, 공백, 특수문자 모두 매칭됩니다.

패턴
c.t
"c"와 "t" 사이에 임의의 한 문자
매칭
I have a cat and a cut on my finger. Also a c@t emoji.
✅ cat, cut, c@t 모두 매칭

이스케이프 (\) - 특수 문자를 일반 문자로

만약 점(.)을 문자 그대로 찾고 싶다면 앞에 백슬래시(\)를 붙입니다.

패턴
\.
실제 점(.) 문자만 찾기
매칭
This is a sentence. Another sentence.
✅ 마침표 점(.)만 매칭
비교
.
모든 문자 (특수 의미)
vs
\.
점(.) 문자 그대로

주요 특수 문자들

정규식에서 특별한 의미를 가지는 문자들입니다. 문자 그대로 사용하려면 앞에 \를 붙이세요.

특수 문자
. * + ? ^ $ { } [ ] ( ) |
이런 문자들은 정규식에서 특별한 의미를 가집니다
이스케이프
\. \* \+ \? \^ \$ \{ \}
앞에 \를 붙이면 문자 그대로 찾습니다

실용적인 예제

파일 확장자
\\.txt
.txt 확장자 찾기
URL의 점
www\\.example\\.com
도메인의 점(.) 찾기
가격 표시
\\$[0-9]+
달러 기호($) 뒤의 숫자

연습해보기

특수 문자와 이스케이프를 연습해보세요!

cat, cut, cot, c@t, c.t, c5t. This is a sentence. File: document.txt
설명: 점(.)은 모든 문자를 매칭하고, \.은 실제 점 문자만 매칭합니다!
레슨 4

문자 클래스 [abc]

[abc], [0-9] 같은 패턴들을 배워봅시다

문자 클래스란?

문자 클래스는 여러 문자 중 하나를 매칭할 때 사용합니다. 대괄호 [ ] 안에 원하는 문자들을 나열하면 됩니다.

패턴
[abc]
a, b, c 중 하나와 매칭
매칭
I have a cat and bird
✅ a, c, b가 각각 매칭됨

범위 지정하기

연속된 문자나 숫자는 하이픈(-)을 사용해서 범위로 지정할 수 있습니다.

패턴
[a-z]
소문자 a부터 z까지
매칭
hello WORLD
✅ 소문자만 매칭됨
패턴
[A-Z]
대문자 A부터 Z까지
매칭
hello WORLD
✅ 대문자만 매칭됨
패턴
[0-9]
숫자 0부터 9까지
매칭
년도: 2024
✅ 숫자만 매칭됨

조합해서 사용하기

여러 범위를 하나의 문자 클래스에 조합할 수 있습니다.

패턴
[a-zA-Z0-9]
영문자(대소문자)와 숫자
매칭
User123@email.com
✅ 영숫자만 매칭

부정 문자 클래스

대괄호 안에서 ^로 시작하면 해당 문자가 아닌 모든 문자와 매칭됩니다.

패턴
[^0-9]
숫자가 아닌 모든 문자
매칭
hello123!
✅ 숫자를 제외한 모든 문자

연습해보기

아래 패턴을 수정해서 원하는 문자들을 찾아보세요!

Hello World! Programming is fun.
설명: 정규식은 대괄호 내의 모든 문자를 감지합니다.
레슨 5

수량자 +, *, ?

반복을 표현하는 방법을 배워봅시다

수량자란?

수량자는 문자나 패턴이 몇 번 반복되는지를 지정합니다. 정규식에서 매우 강력하고 유용한 기능입니다.

기본 수량자

패턴
*
0번 이상 반복
예제
패턴 lo*l → "ll", "lol", "lool" 모두 매칭
o가 0번 이상 나타남
패턴
+
1번 이상 반복
예제
패턴 lo+l → "lol", "lool" 매칭, "ll"은 매칭 안됨
o가 1번 이상 나타남
패턴
?
0번 또는 1번
예제
패턴 colou?r → "color", "colour" 둘 다 매칭
u가 있어도 되고 없어도 됨

정확한 횟수 지정

중괄호 { }를 사용해서 정확한 반복 횟수를 지정할 수 있습니다.

패턴
\d{3}
정확히 3개의 숫자
매칭
전화번호: 010-123-4567
✅ 3자리 숫자들이 매칭
패턴
\d{3,}
3번 이상 반복
매칭
숫자: 123, 4567, 89012
✅ 3자리 이상 숫자만 매칭
패턴
\d{2,4}
2번 이상 4번 이하
매칭
숫자: 1, 23, 456, 7890, 12345
✅ 2~4자리 숫자만 매칭

실용적인 예제

전화번호
\d{3}-\d{3,4}-\d{4}
010-123-4567 형식
공백 처리
\s+
1개 이상의 공백 문자
영단어
[a-zA-Z]+
1개 이상의 연속된 영문자

연습해보기

수량자를 사용해서 패턴을 만들어보세요!

전화번호: 010-1234-5678, 우편번호: 12345
설명: \d+는 1개 이상의 연속된 숫자를 찾습니다.
레슨 6

위치 지정자 ^, $

문자열의 시작과 끝을 지정하는 방법

위치 지정자란?

위치 지정자(앵커)는 패턴이 문자열의 특정 위치에서만 매칭되도록 합니다. 문자를 찾는 것이 아니라 위치를 지정하는 특별한 문자들입니다.

문자열 시작과 끝

패턴
^
문자열의 시작
예제
패턴 ^Hello → "Hello World" ✅, "Say Hello" ❌
문자열 시작에 있는 Hello만 매칭
패턴
$
문자열의 끝
예제
패턴 World$ → "Hello World" ✅, "World is big" ❌
문자열 끝에 있는 World만 매칭
패턴
^...$
전체 문자열
예제
패턴 ^Hello$ → "Hello" ✅, "Hello World" ❌
전체 문자열이 정확히 Hello인 경우만

실용적인 활용

위치 지정자는 주로 유효성 검증에 사용됩니다. 전체 입력이 특정 패턴과 정확히 일치하는지 확인할 때 매우 유용합니다.

이메일 검증
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
전체 문자열이 이메일 형식인지 확인
숫자만
^\d+$
전체 문자열이 숫자로만 구성
비밀번호
^[a-zA-Z0-9]{8,16}$
8-16자리 영숫자 조합

비교해보기

위치 지정자가 있을 때와 없을 때의 차이를 확인해보세요.

위치 지정자 없음
cat
문자열 어디서든 'cat'을 찾음
매칭
"cat", "A cat sits", "education"
✅ 모든 'cat' 매칭
시작 위치 지정
^cat
문자열 시작에서만 'cat'을 찾음
매칭
"cat" ✅, "A cat sits" ❌, "education" ❌
✅ 시작 부분의 'cat'만 매칭
전체 문자열
^cat$
전체 문자열이 정확히 'cat'인 경우만
매칭
"cat" ✅, "A cat sits" ❌, "education" ❌
✅ 정확히 'cat'인 경우만 매칭

연습해보기

위치 지정자를 사용해서 정확한 매칭을 해보세요!

Hello World
Say Hello
Hello there!
Well Hello
설명: ^Hello는 문자열 시작에 있는 'Hello'만 매칭합니다.
레슨 7

실전 예제

이메일, 전화번호 패턴을 만들어봅시다

축하합니다! 🎉

정규식의 기초를 모두 마스터하셨습니다!

실무에서 자주 사용하는 패턴들

지금까지 배운 내용을 조합해서 실제 개발에서 자주 사용하는 패턴들을 만들어보겠습니다.

1. 이메일 주소 검증

완전한 패턴
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
이메일 주소 전체 검증
부분별 설명
^
문자열 시작
[a-zA-Z0-9._%+-]+
사용자명 (영숫자와 특수문자)
@
@ 기호
[a-zA-Z0-9.-]+
도메인명
\.
점(.) - 이스케이프
[a-zA-Z]{2,}
최상위 도메인 (2글자 이상)
$
문자열 끝
유효한 이메일
user@example.com, test.email+tag@domain.co.kr
✅ 올바른 이메일 형식
유효하지 않은 이메일
invalid-email, @domain.com, user@.com
❌ 잘못된 이메일 형식

2. 한국 전화번호

패턴
^01[0-9]-\d{3,4}-\d{4}$
한국 휴대폰 번호 형식
부분별 설명
01[0-9]
010, 011, 016, 017, 018, 019
-
하이픈
\d{3,4}
3-4자리 숫자
-
하이픈
\d{4}
4자리 숫자
유효한 전화번호
010-1234-5678, 011-123-4567, 016-1234-5678
✅ 올바른 전화번호 형식
유효하지 않은 전화번호
010-12-5678, 02-1234-5678, 010.1234.5678
❌ 잘못된 전화번호 형식

3. 비밀번호 강도 검증

기본 패턴
^[a-zA-Z0-9!@#$%^&*]{8,16}$
8-16자리 영숫자 + 특수문자 조합
조건
최소 8자리, 최대 16자리
영문자(대소문자), 숫자, 특수문자 사용 가능

4. 기타 유용한 패턴들

날짜 (YYYY-MM-DD)
^\d{4}-\d{2}-\d{2}$
2024-03-15
시간 (HH:MM)
^([01]?[0-9]|2[0-3]):[0-5][0-9]$
14:30, 09:05
IP 주소
^(\d{1,3}\.){3}\d{1,3}$
192.168.1.1
URL
^https?://[^\s]+$
http://example.com
한글만
^[가-힣]+$
안녕하세요
숫자 + 쉼표
^\d{1,3}(,\d{3})*$
1,234,567

최종 연습

직접 실전 패턴을 테스트해보세요!

user@example.com
invalid-email
test@domain.co.kr
@incomplete.com
설명: 이메일 형식을 검증하는 정규식입니다.
1 / 7