Java
정규식 사용법
개발게발
2023. 8. 18. 23:03
정규식 기본 기호
기호 | 설명 | 예제 |
. | 임의의 문자 1개를 의미 | |
^ | 시작을 의미한다 [] 괄호 안에 있다면 일치하지 않는 부정의 의미로 쓰인다 |
^a : a로 시작하는 단어 [^a] : a가 아닌 철자인 문자 1개 |
$ | $앞의 문자열로 문자가 끝나는지를 의미 | a$ : a로 끝나는 단어 |
[] | [] 괄호 안의 문자가 있는지를 확인한다 | [ab][cd] : a, b 중 한 문자와 c, d 중 한 문자 -> ac ad bc bd |
[^] | [] 대괄호 안에 ^ 문자가 있으면, 제외를 뜻함 - 대괄호 안에 ^ 가 쓰이면 제외의 뜻 - 대괄호 밖에 ^ 가 쓰이면 시작점의 뜻 |
[^a-z] : 알파벳 소문자 a부터 z까지를 제외한 모든 문자 |
- | 사이의 문자 혹은 숫자를 의미한다 | [a-z] : 알파벳 소문자 a부터 z까지 하나 [a-z0-9] : 알파벳 소문자 전체, 0~9 중 한 문자 |
| | 또는 | [a|b] : a 혹은 b |
() | 그룹 | 01(0|1) : 01뒤에 0 또는 1이 들어간다 -> 010(o), 011(o), 012(x) |
{} | 개수 | a{3}b : a가 3번 온 후 b가 온다 -> aab(x), aaab(o), aaaab(o) |
\b | 공백, 탭, ",", "/" 등을 의미한다. | apple\b : apple뒤에 공백, 탭 등이 있다 -> apple juice(o), apple.com(x) |
\B | \b의 부정 공백 탭 등이 아닌 문자인 경우 매치한다. |
apple\B -> apple.com(o) |
\d | 0~9 사이의 숫자 [0~9]와 동일 |
|
\D | \d의 부정 숫자가 아닌 어떤 문자, [^0-9]와 동일 |
|
\s | 공백, 탭 | |
\S | 공백, 탭이 아닌 문자 | |
\w | 알파벳 대소문자 + 숫자 + "_" [a-zA-Z_0-9]와 동일 |
|
\W | \w의 부정 [^a-zA-Z_0-9] |
정규식 수량 기호
기호 | 설명 | 예제 |
? | 앞의 표현식이 없거나 최대 한개만 | a1? : 1이 최대 한개만 있거나 없을 수도 있다 |
* | 앞의 표현식이 없거나 있거나 (여러개) | a1* : 1이 있을 수도 없을 수도 있다 |
+ | 앞의 표현식이 1개 이상 여러개 | a1+ : 1이 1개 이상있다 |
{n} | 딱 n개 | a{3} : a가 딱3개 있다 |
{n, m} | n개 이상 m개 이하 | a{3, 5} : a가 3개 이상 5개 이하 있다 |
{n,} | n개 이상 | a{3,} : a가 3개 이상 있다 |
정규식 그룹 캡쳐 기호
기호 | 설명 |
() | 그룹 및 캡쳐 |
(?:) | 찾지만 그룹에 포함 안 됨 |
(?=) | =앞 문자를 기준으로 전방 탐색 |
(?<=) | =뒤 문자를 기준으로 후방 탐색 |
자주 사용되는 정규식 샘플
정규 표현식 | 설명 |
^[0-9]*$ | 숫자 |
^[a-zA-Z]*$ | 영문자 |
^[가-힣]*$ | 한글 |
\\w+@\\w+\\.\\w+(\\.\\w+)? | |
^\d{2,3}-\d{3,4}-\d{4}$ | 전화번호 |
^01(?:0|1|[6-9])-(?:\d{3}|\d{4})-\d{4}$ | 휴대전화번호 |
\d{6}\-[1-4]\d{6} | 주민등록번호 |
^\d{3}-\d{2}$ | 우편번호 |
가장 앞 문자가 숫자인지 체크
Boolean ex1 = Pattern.matches("[0-9].*", "people");
Boolean ex2 = Pattern.matches("[0-9].*", "3people");
Boolean ex3 = Pattern.matches("[0-9].*", "people3");
System.out.println(ex1); // false
System.out.println(ex2); // true
System.out.println(ex3); // false
모든 문자가 숫자인지 체크
Boolean ex1 = Pattern.matches("[0-9]*$", "123");
Boolean ex2 = Pattern.matches("[0-9]*$", "12p3");
System.out.println(ex1); // true
System.out.println(ex2); // false
☕ 자바 정규식(Regular Expression) 사용법 💯 정리
정규표현식 이란 정규표현식(Regular Expression)이란 문자열 데이터 중에서 원하는 조건(패턴)과 일치하는 문자열 부분을 찾아내기 위해 사용하는 것으로, 미리 정의된 기호와 문자를 이용해서 작성
inpa.tistory.com