java.regex의 패턴 클래스 패키지는 정규 표현식의 컴파일된 표현입니다.
컴파일() 이 클래스의 메서드는 정규식을 나타내는 문자열 값을 받아들이고 Pattern 개체를 반환합니다.
예시
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CompileExample {
public static void main( String args[] ) {
//Reading string value
Scanner sc = new Scanner(System.in);
System.out.println("Enter input string");
String input = sc.nextLine();
//Regular expression to find digits
String regex = "(\\d)";
//Compiling the regular expression
Pattern pattern = Pattern.compile(regex);
//Printing the regular expression
System.out.println("Compiled regular expression: "+pattern.toString());
//Retrieving the matcher object
Matcher matcher = pattern.matcher(input);
//verifying whether match occurred
if(matcher.find()) {
System.out.println("Given String contains digits");
} else {
System.out.println("Given String does not contain digits");
}
}
} 출력
Enter input string hello my id is 1120KKA Compiled regular expression: (\d) Given String contains digits
이 방법의 또 다른 변형은 플래그를 나타내는 정수 값을 허용합니다. 여기서 각 플래그는 선택적 조건을 지정합니다. 예를 들어 CASE_INSENSITIVE는 정규 표현식을 컴파일하는 동안 대소문자를 무시합니다.
예시
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CompileExample {
public static void main( String args[] ) {
//Compiling the regular expression
Pattern pattern = Pattern.compile("[t]", Pattern.CASE_INSENSITIVE);
//Retrieving the matcher object
Matcher matcher = pattern.matcher("Tutorialspoint");
int count = 0;
while(matcher.find()) {
count++;
}
System.out.println("Number of matches: "+count);
}
} 출력
Enter input string Tutorialspoint Number of matches: 3