Java에서 정규 표현식을 사용하기 위해 제공되는 두가지 클래스
정규 표현식을 컴파일한 결과를 저장하는 객제
문자열 형태로 정의된 정규식을 Java 코드에서 사용할 수 있는 객체로 변환
compile(String regex)
: 정규식을 컴파일 해 Pattern 객체를 생성matcher(CharSequence input)
: 입력 문자열을 Pattern과 비교할 수 있는 Matcher
객체를 반환import java.util.regex.Pattern;
public class PatternExample {
public static void main(String[] args) {
// 1. 정규 표현식을 정의하고 컴파일
String regex = "\\d+"; // 숫자(하나 이상)와 매칭되는 정규식
Pattern pattern = Pattern.compile(regex);
// 2. pattern 객체를 통해 matcher 만들기
System.out.println("정규식이 컴파일되었습니다.");
}
}
\\d+
는 숫자로만 이루어진 문자열을 찾는 정규식결론 : Pattern은 정규식을 객체로 변환
Pattern과 입력 문자열을 매칭하는데 사용
Matcher 객체를 사용하면 문자열에서 정규식에 맞는 부분을 찾거나, 매칭된 값을 추출할 수 있다
find()
: 입력 문자열에서 정규식에 맞는 다음 부분이 있는지 확인group()
: 매칭된 그룹(부분 문자열)을 반환matches()
: 입력 문자열 전체가 정규식과 일치하는 지 검사lookingAt()
: 문자열의 첫 부분이 정규식과 일치하는지 확인Pattern으로 정규식을 컴파일 해 객체를 만들고 ⟶ 그 Pattern을 사용해 문자열과 매칭을 수행하는 것이 Matcher
import java.util.regex.Pattern;
import java.util.regex.Matcher;
// 1. 정규식 패턴 정의 (숫자 추출용)
String regex = "\\d+"; // 하나 이상의 숫자와 매칭
Pattern pattern = Pattern.compile(regex); // Pattern 객체 생성
// 2. 매칭할 입력 문자열
String input = "123 apples and 456 oranges";
// 3. Pattern과 입력 문자열을 이용해 Matcher 객체 생성
Matcher matcher = pattern.matcher(input);
// 4. matcher.find()로 매칭되는 부분 찾기
while (matcher.find()) {
// 매칭된 부분을 출력
System.out.println("매칭된 숫자: " + matcher.group());
}