-
정규식 기본 기호
기호 설명 예제 . 임의의 문자 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+)? E-Mail ^\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
'Java' 카테고리의 다른 글
Optional 클래스 (0) 2023.09.08 String, StringBuffer, StringBuilder (0) 2023.08.31 Iterator, Enumeration 인터페이스 (0) 2023.06.30 Set (0) 2023.06.27 List (0) 2023.06.27