1. 기본 메타 문자 
^ (시작)
"문장의 첫 글자부터 시작해!"
패턴: ^Hello
문자열: "Hello World" ✅
문자열: "Say Hello" ❌
Plain Text
복사
$ (끝)
"문장의 마지막 글자로 끝나!"
패턴: World$
문자열: "Hello World" ✅
문자열: "World Peace" ❌
Plain Text
복사
\b (단어 경계)
"독립된 단어만 찾아줘!"
패턴: \bcat\b
문자열: "I have a cat" ✅ (독립된 'cat')
문자열: "concatenate" ❌ ('cat'이 단어 안에 포함)
Plain Text
복사
\B (비단어 경계)
"단어 안에 포함된 것만 찾아줘!"
패턴: cat\B
문자열: "I have a cat" ❌ (독립된 'cat')
문자열: "concatenate" ✅ ('cat'이 단어 안에 포함)
Plain Text
복사
2. 공백과 문자 
\s (공백)
"띄어쓰기, 탭, 엔터 등 모든 공백"
패턴: Hello\sWorld
문자열: "Hello World" ✅
문자열: "Hello World" ✅ (탭도 포함)
문자열: "HelloWorld" ❌
Plain Text
복사
\S (공백 아닌 것)
"공백이 아닌 모든 문자"
패턴: \S+
문자열: "Hello World" → "Hello", "World" 두 개 매치
Plain Text
복사
\d (숫자)
"0부터 9까지의 숫자"
패턴: \d+
문자열: "I have 5 cats and 3 dogs" → "5", "3" 매치
Plain Text
복사
\D (숫자 아닌 것)
"숫자가 아닌 모든 문자"
패턴: \D+
문자열: "abc123def" → "abc", "def" 매치
Plain Text
복사
\w (단어 문자)
"영문자, 숫자, 언더스코어"
패턴: \w+
문자열: "hello_world123!" → "hello_world123" 매치
Plain Text
복사
. (모든 문자)
"뭐든지 한 글자"
패턴: c.t
문자열: "cat" ✅, "cut" ✅, "c@t" ✅, "cot" ✅
Plain Text
복사
3. 선택 패턴 
| (OR)
"이것 또는 저것"
패턴: cat|dog
문자열: "I have a cat" ✅
문자열: "I have a dog" ✅
문자열: "I have a bird" ❌
Plain Text
복사
[...] (문자 집합)
"대괄호 안의 문자 중 하나"
패턴: [aeiou]
문자열: "hello" → "e", "o" 매치 (모음들)
패턴: [0-9]
문자열: "Room 301" → "3", "0", "1" 매치
패턴: [A-Za-z]
문자열: "Hello123" → "H", "e", "l", "l", "o" 매치
Plain Text
복사
4. 수량 한정자 
? (0개 또는 1개)
"있어도 되고 없어도 돼"
패턴: colou?r
문자열: "color" ✅ (u가 0개)
문자열: "colour" ✅ (u가 1개)
문자열: "colouur" ❌ (u가 2개)
Plain Text
복사
*(0개 이상)
"없어도 되고, 많아도 돼"
패턴: go*d
문자열: "gd" ✅ (o가 0개)
문자열: "god" ✅ (o가 1개)
문자열: "good" ✅ (o가 2개)
문자열: "goooood" ✅ (o가 많아도 OK)
Plain Text
복사
+ (1개 이상)
"최소 1개는 있어야 해"
패턴: go+d
문자열: "gd" ❌ (o가 0개)
문자열: "god" ✅ (o가 1개)
문자열: "good" ✅ (o가 2개)
Plain Text
복사
{n} (정확히 n개)
"정확히 이 개수만"
패턴: \d{3}
문자열: "12" ❌ (2개)
문자열: "123" ✅ (3개)
문자열: "1234" → "123" 매치 (앞의 3개만)
Plain Text
복사
{n,m} (n개 이상 m개 이하)
"이 범위 안에서"
패턴: \d{2,4}
문자열: "1" ❌ (1개)
문자열: "12" ✅ (2개)
문자열: "123" ✅ (3개)
문자열: "1234" ✅ (4개)
문자열: "12345" → "1234" 매치 (최대 4개까지)
Plain Text
복사
5. 전후방 탐색 
?= (전방 탐색)
"뒤에 특정 패턴이 오는 경우만"
패턴: \w+(?=@)
문자열: "user@gmail.com" → "user" 매치
설명: "@" 앞에 있는 단어만 찾기
Plain Text
복사
?<= (후방 탐색)
"앞에 특정 패턴이 있는 경우만"
패턴: (?<=@)\w+
문자열: "user@gmail.com" → "gmail" 매치
설명: "@" 뒤에 있는 단어만 찾기
Plain Text
복사
?! (부정형 전방 탐색)
"뒤에 특정 패턴이 오지 않는 경우만"
패턴: \d{4}(?!-)
문자열: "010-1234-5678" → "5678" 매치
설명: 뒤에 "-"가 오지 않는 4자리 숫자
Plain Text
복사
?<! (부정형 후방 탐색)
"앞에 특정 패턴이 오지 않는 경우만"
패턴: (?<!\$)\d+
문자열: "I paid $30 for 100 apples" → "100" 매치
설명: 앞에 "$"가 오지 않는 숫자들
Plain Text
복사
6. 실생활 예시 
이메일 주소 찾기
패턴: \w+@\w+\.\w+
문자열: "Contact us at support@company.com"
결과: "support@company.com" 매치
Plain Text
복사
전화번호 찾기
패턴: \d{3}-\d{4}-\d{4}
문자열: "Call me at 010-1234-5678"
결과: "010-1234-5678" 매치
Plain Text
복사
한국 우편번호 찾기
패턴: \d{5}
문자열: "Address: 서울시 강남구 12345"
결과: "12345" 매치
Plain Text
복사
HTML 태그 제거
패턴: <[^>]*>
문자열: "<p>Hello <b>World</b></p>"
결과: "Hello World" (태그들이 제거됨)
Plain Text
복사
기억하기 쉬운 팁
•
^ = 시작 (화살표가 앞을 가리킴)
•
$ = 끝 (달러는 마지막에 계산)
•
*= 별처럼 많거나 없거나
•
+ = 플러스니까 최소 1개는 더해야 함
•
? = 물음표니까 있을까 말까
•
\d = digit (숫자)
•
\w = word (단어)
•
\s = space (공백)
