자바에서의 정규 표현식은
java.util.regex.*
위 패키지에서 지원한다.
주요 클래스
- pattern class
- matcher class
pattern 클래스를 사용하여 유효성 검사를 할 수 있다. 패턴을 생성하고, matches method로 간단히 검색 가능하다.
java.util.regex.pattern
pattern 클래스에서 래퍼 메서드를 생성할 수 있다. ( 대부분 패턴 클래스의 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 |