1. Pattern.compile()로 패턴 객체 생성
import java.util.regex.Pattern;
Pattern pattern1 = Pattern.compile("[a-z]+");
Pattern pattern2 = Pattern.compile("[a-z]+", Pattern.CASE_INSENSITIVE);
Pattern pattern3 = Pattern.compile("(?i)[a-z]+");
Pattern.compile(String regex) 또는 Pattern.compile(String regex, int flags)로 패턴 객체를 생성한다.
플래그는 compile메소드의 두번째 인자에 속성값을 전달하는 방법이 있고, 문자열에 기호로 전달하는 방법이 있다. 기호로 전달할 때는 문자열 맨 앞에 추가한다.
flag값으로는 다음 field를 줄 수 있다.
field(속성) | 기호 | 설명 |
CASE_INSENSITIVE | (?i) | 대소문자를 구분하지 않는다 |
UNICODE_CASE | (?u) | CASE_INSENSITIVE 플래그와 같이 사용한다면, 영어 알파벳이 아닌 언어도 대소문자를 구분하지 않는다 |
2. Pattern 객체에서 matcher()메소드로 Matcher 객체 생성
import java.util.regex.Pattern;
import java.util.regex.Matcher;
Pattern pattern3 = Pattern.compile("(?i)[a-z]+");
Matcher matcher1 = pattern3.matcher("Today is cloudy");
3. Matcher 객체에서 메소드로 원하는 작업 실행
matcher 클래스의 대표 메소드
반환 타입 | 메소드 | 설명 |
boolean | find() | 패턴에 맞는 다음 문자열이 있는지 없는지 |
String | group() | 매치된 문자열 반환 |
int | start() | 매치의 시작 인덱스. 시작 문자의 인덱스다 |
int | end() | 매치의 마지막 인덱스. 마지막 문자+1의 인덱스다 |
예제 코드
import java.util.regex.Pattern;
import java.util.regex.Matcher;
class Main {
public static void main(String[] args) {
Pattern pattern = Pattern.compile("[a-z]+", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher("Today is cloudy");
while(matcher.find()) {
System.out.println(matcher.group());
System.out.println(matcher.start()+ " " +matcher.end());
}
}
}
참고: https://www.w3schools.com/java/java_regex.asp
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/regex/Pattern.html
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/regex/Matcher.html
-
'Java' 카테고리의 다른 글
Java 파일 조작 (File Handling) (0) | 2024.09.23 |
---|---|
Java 예외 처리 (Exception, try catch) (1) | 2024.09.21 |
Java 콘솔 입출력 (console output & input) (0) | 2024.09.19 |
Java 자료구조 클래스 (Data Structure Classes) (1) | 2024.09.14 |
Java Class (1) | 2024.09.07 |