
자바에서의 정규 표현식은
java.util.regex.*위 패키지에서 지원한다.
주요 클래스
- pattern class
- matcher class
pattern 클래스를 사용하여 유효성 검사를 할 수 있다. 패턴을 생성하고, matches method로 간단히 검색 가능하다.
java.util.regex.patternpattern 클래스에서 래퍼 메서드를 생성할 수 있다. ( 대부분 패턴 클래스의 pattern 메소드를 사용하여 정규표현식을 래핑한다.)
pattern 클래스의 주요 메서드 목록
| compile() | 정규 표현식을 패턴으로 컴파일 | 
| flags() | 패턴에 설정되어 있는 일치 플래그를 반환 | 
| matches() | matcher class의 matches function과 같은 기능 | 
| pattern() | 만들었던 패턴에서 정규 표현식 부분을 문자열로 반환 | 
| split() | 문자열을 하위 문자열로 나눔 | 
다음은 자바에서의 pattern class를 이용한 정규표현식 사용 예시 코드이다.
import java.util.regex.Pattern;
public class RegularExpression {
    public static void main(String[] args) {
//        정규표현식 사용 예제 (단계별)
        
//        1. 검색할 패턴 생성
//        대문자로만 이루어졌는 검색
        String searchPattern = "[A-Z]+";
//        2. 검색할 대상 문자열
        String str = "Program Programming Programmer";
        String str2 = "PROMGAM";
//        3. 유효성 검사 (Pattern class )
        boolean validCheck = Pattern.matches(searchPattern, str);
        boolean validCheck2 = Pattern.matches(searchPattern, str2);
        System.out.println(validCheck);      //false
        System.out.println(validCheck2);    // true
        
    }
}
matcher 클래스의 주요 메서드 목록
| find() | 문자열에서 패턴과 일치하는 부분이 있는지 확인 | 
| lookingAt() | 문자열이 주어진 패턴으로 시작하는지 확인 | 
| matches() | 문자열 전체가 주어진 패턴과 일치하는지 확인 | 
| replaceAll() | 일치하는 부분을 모두 치환 | 
| replaceFirst() | 처음 일치하는 부분만 치환 | 
이 밖의 추가 메서드를 사용하여 더 구체적으로 정규 표현식을 설정할 수 있다.
matcher 클래스는 pattern 클래스로 호출하여 생성한 뒤 사용하는 경우가 많다.
새로운 패턴을 compile한 후
대상 문자열로 이루어진 matcher를 생성
마지막으로 생성된 matcher의 메소드를 호출하는 방식이다.
사용 예시 코드
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegularExpression {
    public static void main(String[] args) {
//        정규표현식 사용 예제 (단계별)
//        1. pattern complie
        Pattern pattern = Pattern.compile("[A-Z]+");
//        2. 검색 대상 문자열 matcher 생성
        String str = "program Programming Programmer";
        String str2 = "PROMGAM";
        Matcher matcher = pattern.matcher(str);
        Matcher matcher2 = pattern.matcher(str2);
//        3. 원하는 메소드 호출
        System.out.println(matcher.find());         //true
        System.out.println(matcher.lookingAt());    //false
        System.out.println(matcher2.matches());     //true
        System.out.println(matcher2.lookingAt());   //true
//
    }
}
참고 자료 : 손에 잡히는 10분 정규 표현식 ( 벤 포터 저 )
'Programming > Java' 카테고리의 다른 글
| [whiteship 온라인 스터디] 2주차 과제: 자바 데이터 타입, 변수 그리고 배열 (0) | 2020.12.26 | 
|---|---|
| [whiteship 온라인 스터디] 1주차 과제: JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가. (0) | 2020.12.26 | 
| [JAVA] List to Array & Array to List ( 리스트와 배열 convert하기) + String 과 char 배열 변환 (0) | 2020.12.07 | 
| [정규표현식 In Java] 자바의 정규 표현식 및 참고 사이트 (0) | 2020.12.06 | 
| [이펙티브 자바3] 프로그래밍의 기본 원칙 (0) | 2020.12.01 | 
 
                    
                   
                    
                   
                    
                  