💡 정규 표현식 (Regular Expression)
특정 규칙을 가지는 문자열의 집합을 표현하기 위해 사용하는 언어
📒 문법
📝 기본 기호
기호 | 설명 | 예제 |
---|
. | 임의의 문자 1개 | |
^ | 특정 문자열로 시작 | ^a : a로 시작하는 문자열 |
$ | 특정 문자열로 종료 | a$ : a로 끝나는 문자열 |
[] | 괄호 안의 문자인지 확인 | [abcd] : a, b, c, d 중 한 문자 이상 포함한 문자열 |
[^] | 괄호 안의 문자가 아닌지 확인 | [^abcd] : a, b, c, d를 포함하지 않은 문자열 |
- | 문자 혹은 숫자의 범위 | [a-z] : 알파벳 소문자 a ~ z |
| | OR | [a|b] : a 혹은 b를 포함한 문자열 |
() | 그룹 | a(b|c) : a 뒤에 b 혹은 c가 오는 문자열 |
{} | 특정 문자열이 연속적으로 올 수 있는 개수 | a{3} : a가 3번 반복된 문자열 (aaa ) |
📝 문자 기호
기호 | 설명 | 예제 |
---|
\s | 공백, 탭 | abcd\b : abcd 뒤에 공백이 있는 문자열 |
\S | 공백, 탭이 아닌 문자 | abcd\S : abcd 뒤에 공백이 없는 문자열 |
\d | 숫자 = (0-9) | ^[\d] : 숫자만 허용 |
\D | 숫자가 아닌 문자 | ^[\D] : 숫자가 아닌 문자만 허용 |
\w | 문자 = (a-z, A-Z, 0-9) | ^[\w] : 문자만 허용 |
\W | 문자가 아님 | ^[\W] : 문자가 아닌 경우만 허용 |
📝 수량 기호
기호 | 설명 | 예제 |
---|
? | 특정 문자열이 없거나 최대 한 개 | a? : a가 없거나 최대 한 개인 문자열 |
* | 특정 문자열이 없거나 여러개 | a* : a가 있을수도, 없을수도 있는 문자열 |
+ | 특정 문자열이 1개 이상 | a+ : a가 한 개 이상 포함된 문자열 |
{n} | 특정 문자열 n개 | a{3} : a가 3개 있는 문자열 |
{n, m} | 특정 문자열이 n개 이상 m개 이하 | a{1, 3} : a가 1개 이상 3개 이하로 있는 문자열 |
📝 그룹 캡쳐 기호
기호 | 설명 |
---|
(?:) | 찾지만 그룹에 포함하지는 않음 |
(?=) | 특정 문자열 기준 전방 탐색 |
(?<=) | 특정 문자열 기준 후방 탐색 |
⭐ 정규식 샘플
자주 사용되는 정규식 모음!
기호 | 설명 |
---|
^[0-9]*$ | 숫자로만 이루어진 문자열 |
^[a-zA-Z]*$ | 영어 대소문자로만 이루어진 문자열 |
^[가-힣]*$ | 한글로만 이루어진 문자열 |
\\w+@\\w+\\.\\w+(\\.\\w+)? | 이메일 (문자@문자.문자) |
^\d{2,3}-\d{3,4}-\d{4}$ | 전화번호 (숫자(2~3)-숫자(3~4)-숫자(4)) |
^01(?:0|1|[6-9])-(?:\d{3}|\d{4})-\d{4}$ | 휴대폰 번호 (01(6~9)-숫자(3~4)-숫자(4)) |
\d{6} \- [1-4]\d{6} | 주민등록번호 (숫자(6)-[1-4]숫자(6)) |
^\d{3}-\d{2}$ | 우편번호 (숫자(3)-숫자(2)) |
🙇🏻♀️ 참고 1 : ☕ 자바 정규식(Regular Expression) 사용법 💯 정리
🙇🏻♀️ 참고 2 : [Java] 정규표현식(RegExp) 이해하기 : 패턴, 문자 클래스, 자주 사용 패턴