정규 표현식이 컴파일된 클래스이다. 정규 표현식에 대상 문자열을 검증하거나 활용하기 위해 사용되는 클래스를 말한다.
이 클래스에서는 정규 표현식을 컴파일해 인스턴스를 스스로 만들어야 한다. 이후 만든 패턴을 가지고 Matcher
객체를 생성할 수 있다. 생성된 Matcher
객체는 패턴과 문자열을 비교할 수 있게 해준다.
Pattern
클래스를 받아 대상 문자열과 패턴이 일치하는 부분을 찾거나 전체 일치 여부 등을 판별하기 위해 사용된다.
컴파일과 비교를 한번에 해주는 메서드이다.
contains()
와 비슷한 메서드이지만 조금의 차이점이 존재한다. contains()
메서드는 인자로 전달받은 특정 문자의 포함 여부를 확인하는 메서드이지만 matches()
는 정규 표현식으로 인자를 받아 동일한 패턴의 문자열인지 확인하는 메서드이다.
Pattern p = Pattern.compile("a.d");
Matcher m = p.matcher("aad");
boolean b = m.matches(); // true
//위와 같은 코드를 한줄로 요약할 수 있음
boolean b = Pattern.matches("a.d", "aad"); // true
특정한 규칙을 가진 문자열의 집합을 표현하는데 쓰이는 언어이다.
^x
: 문자열의 시작을 표현, x 문자로 시작됨을 의미x$
: 문자열의 종료를 표현, x 문자로 종료됨을 의미.x
: 임의의 한 문자의 자릿수를 표현하며 문자열이 x로 끝난다는것을 의미x+
: 반복을 표현하며 x 문자가 한번 이상 반복됨을 의미x?
: 존재여부 표현, x 문자가 존재할수도 있고 없을수도 있음x*
: 반복여부 표현, x 문자가 0번 이상 반복됨을 의미x{n}
: 반복을 표현하며 x 문자가 n번 반복됨을 의미x{n,}
: 반복을 표현하며 x 문자가 n번 이상 반복됨을 의미x{n, m}
: 반복을 표현하며 x 문자가 n번 이상 m번 이하로 반복됨을 의미