본문 바로가기

BackEnd/Java

[java] 이것이 자바다 ch12 정규 표현식 클래스

728x90
반응형

1. 정규 표현식

   ▷ 문자 또는 숫자와 관련된 표현과 반복 기호가 결합된 문자열

 

NO 표현 및 기호 설명
1 [ ] 한 개의 문자 [ abc] a, b, c 중 하나의 문자
[^abc] a, b, c 이외의 하나의 문자
[a-zA-Z] a~z, A~Z 중 하나의 문자
2 \d 한 개의 숫자, [0-9]와 동일
3 \s 공백
4 \w 한 개의 알파벳 또는 한 개의 숫자, [a-zA-Z_0-9]와 동일
5 \. .
6 . 모든 문자 중 한 개의 문자
7 ? 없음 또는 한 개
8 * 없음 또는 한 개 이상
9 + 한 개 이상
10 {n} 정확히 n개
11 {n,} 최소한 n개
12 {n, m} n개부터 m개까지
13 a | b a 또는 b
14 ( ) 그룹핑

 

 

2. Pattern 클래스로 검증

   ▷ java.util.regex 패키지의 Pattern 클래스는 정규 표현식으로 문자열을 검증하는 matches() 메소드 제공

 

import java.util.regex.Pattern;

public class PatternExample {
	public static void main(String[] args) {
		String regExp = "(02|010)-\\d{3,4}-\\d{4}";
		String data = "010-123-4567";
	
		boolean result = Pattern.matches(regExp, data);
		if(result) {
			System.out.println("정규식과 일치합니다.");
		} else {
			System.out.println("정규식과 일치하지 않습니다.");			
		}
		
		// 역슬래시(\) 한 번만 넣으면 문자열로 인식하기 때문에 두 번 사용합니다.
		regExp = "\\w+@\\w+\\.\\w+(\\.\\w+)?";
		data = "angel@mycompany.com";
		// data = "angel@mycompany.co.kr";
		result = Pattern.matches(regExp, data);
		if(result) {
			System.out.println("정규식과 일치합니다.");
		} else {
			System.out.println("정규식과 일치하지 않습니다.");			
		}
	}
}

//	출력 : 
//	정규식과 일치합니다.
//	정규식과 일치합니다.


▷ 날짜에서 그룹으로 묶은 이유는 하나로 인식해서 ?를 붙여 해당 그룹이 있는지 없는지 확인하기 위해서 입니다.

 

정규 표현식은 문자열이 정해져 있는 형식으로 구성되어 있는지 검증을 해야할 때 사용합니다.

 

제대로 작성했는지 확인하기 위해서 사용하면 좋을 것 같아요!

 

많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~

 

 

728x90
반응형