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