정규식은 입력 텍스트를 검색하기 위한 패턴을 정의/형성하는 문자열입니다. 정규식은 하나 이상의 문자를 포함할 수 있으며 정규식을 사용하여 문자열을 검색하거나 바꿀 수 있습니다.
Java는 정규 표현식과의 패턴 일치를 위해 java.util.regex 패키지를 제공합니다. 이 패키지에는 다음과 같은 세 가지 클래스가 포함되어 있습니다. -
- 패턴 클래스: 패턴 이 패키지의 클래스는 정규 표현식의 컴파일된 표현입니다. 정규식을 String과 일치시키기 위해 이 클래스는 다음과 같은 두 가지 방법을 제공합니다.
- 컴파일(): 이 메서드는 정규식을 나타내는 String을 받아 Pattern 객체의 객체를 반환합니다.
- 매처(): 이 메소드는 String 값을 받아들이고 주어진 String을 현재 패턴 객체가 나타내는 패턴과 일치시키는 매처 객체를 생성합니다.
- 매처 java.util.regex 패키지의 클래스는 일치 작업을 수행하는 엔진입니다. 일치하는 값을 찾으려면 이 클래스의 두 가지 메서드, 즉 를 사용해야 합니다.
- 찾기(): 이 메서드는 현재 개체가 나타내는 일치 작업이 성공하면 true를 반환하고 그렇지 않으면 false를 반환합니다.
- 그룹() :이 메서드는 특정 그룹을 나타내는 정수 값을 허용하고 일치 작업에서 지정된 그룹이 캡처한 시퀀스를 반환합니다.
- PatternSyntaxException − PatternSyntaxException 객체는 정규식 패턴의 구문 오류를 나타내는 확인되지 않은 예외입니다.
예
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Example { public static void main( String args[] ) { Scanner sc = new Scanner(System.in); System.out.println("Enter input string: "); String input = sc.nextLine(); String regex = "[^\\p{ASCII}]"; //Creating a pattern object Pattern pattern = Pattern.compile(regex); //Matching the compiled pattern in the String Matcher matcher = pattern.matcher(input); //Creating an empty string buffer StringBuffer sb = new StringBuffer(); while (matcher.find()) { matcher.appendReplacement(sb, ""); } matcher.appendTail(sb); System.out.println("Result: \n"+ sb.toString() ); } }
출력
Enter input string: whÿ do we fall Result: wh do we fall
예
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class StartExample { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Enter input text: "); String input = sc.nextLine(); String regex = "[t]"; //Creating a pattern object Pattern pattern = Pattern.compile(regex); //Matching the compiled pattern in the String Matcher matcher = pattern.matcher(input); int count =0; while (matcher.find()) { int start = matcher.start(); System.out.println(start); } } }
출력
Enter input text: Hello how are you welcome to Tutorialspoint 26 31 42