che01 님의 블로그
정규표현식(Regular Expression) 패턴 정리표 본문
기본 메타문자
패턴 설명 예시 매칭 결과
| . | 임의의 한 문자 (개행문자 제외) | a.b | acb, arb, a3b |
| * | 앞 문자가 0개 이상 반복 | bo* | b, bo, boo, booo |
| + | 앞 문자가 1개 이상 반복 | go+gle | gogle, google, gooogle |
| ? | 앞 문자가 0개 또는 1개 | colou?r | color, colour |
문자 클래스
패턴 설명 예시 매칭 결과
| \d | 숫자 (0~9) | \d+ | 123, 45, 7890 |
| \D | 숫자가 아닌 문자 | \D+ | abc, Hello |
| \w | 단어 문자 (영문, 숫자, _) | \w+ | abc123, word_1 |
| \W | 단어 문자가 아닌 문자 | \W+ | !@#, *** |
| \s | 공백 문자 (스페이스, 탭, 개행) | \s+ | 공백, 탭, 개행 |
| \S | 공백이 아닌 문자 | \S+ | Hello, 123 |
위치 지정자
패턴 설명 예시 매칭 결과
| ^ | 문자열의 시작 | ^Hello | "Hello"로 시작하는 문자열 |
| $ | 문자열의 끝 | world$ | "world"로 끝나는 문자열 |
| \b | 단어 경계 | \bword\b | 독립된 단어 "word" |
| \B | 단어 경계가 아닌 위치 | \Bword\B | 단어 내부의 "word" |
문자 그룹 및 범위
패턴 설명 예시 매칭 결과
| [abc] | a, b, c 중 하나 | gr[ae]y | gray, grey |
| [^abc] | a, b, c를 제외한 문자 | [^0-9] | 숫자가 아닌 문자 |
| [a-z] | 소문자 a부터 z까지 | [a-z]+ | hello, world |
| [A-Z] | 대문자 A부터 Z까지 | [A-Z]+ | HELLO, WORLD |
| [0-9] | 숫자 0부터 9까지 | [0-9]+ | 123, 456 |
| [a-zA-Z] | 모든 영문자 | [a-zA-Z]+ | Hello, World |
수량자
패턴 설명 예시 매칭 결과
| {n} | 정확히 n번 반복 | \d{3} | 숫자 3자리 |
| {n,} | n번 이상 반복 | \d{3,} | 숫자 3자리 이상 |
| {n,m} | n번 이상 m번 이하 반복 | \d{3,5} | 숫자 3~5자리 |
| * | 0번 이상 반복 ({0,}와 같음) | a* | ``, a, aa, aaa |
| + | 1번 이상 반복 ({1,}와 같음) | a+ | a, aa, aaa |
| ? | 0번 또는 1번 ({0,1}와 같음) | a? | ``, a |
그룹화 및 선택
패턴 설명 예시 매칭 결과
| () | 그룹화 | (abc)+ | abc, abcabc |
| ` | ` | 선택 (OR) | `cat |
| (?:) | 비캡처 그룹 | (?:abc)+ | abc, abcabc (캡처 안함) |
특수 문자 이스케이프
패턴 설명 예시 매칭 결과
| \. | 마침표 문자 | www\. | www. |
| \* | 별표 문자 | \* | * |
| \+ | 더하기 문자 | \+ | + |
| \? | 물음표 문자 | \? | ? |
| \[ | 대괄호 열기 | \[ | [ |
| \] | 대괄호 닫기 | \] | ] |
| \{ | 중괄호 열기 | \{ | { |
| \} | 중괄호 닫기 | \} | } |
| \( | 소괄호 열기 | \( | ( |
| \) | 소괄호 닫기 | \) | ) |
| \^ | 캐럿 문자 | \^ | ^ |
| \$ | 달러 문자 | \$ | $ |
| | | 파이프 문자 | | | ` |
| \\ | 백슬래시 문자 | \\ | \ |
실무 자주 사용 패턴
용도 패턴 설명
| 이메일 | ^[\\w.-]+@[\\w.-]+\\.[a-zA-Z]{2,6}$ | 기본 이메일 형식 검증 |
| 휴대폰 번호 | ^01[016789]-\\d{3,4}-\\d{4}$ | 한국 휴대폰 번호 |
| 비밀번호 | ^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{8,20}$ | 8~20자, 영문+숫자 |
| URL | ^https?://[\\w.-]+\\.[a-zA-Z]{2,6} | 기본 URL 형식 |
| 숫자만 | \\d+ | 연속된 숫자 |
| 영문만 | [A-Za-z]+ | 영문자만 |
| 공백 제거 | \\s+ | 하나 이상의 공백 |
| 날짜 (YYYY-MM-DD) | \\d{4}-\\d{2}-\\d{2} | 기본 날짜 형식 |
| 시간 (HH:MM) | \\d{2}:\\d{2} | 시간 형식 |
| IP 주소 | \\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3} | 기본 IP 주소 형식 |