Computer >> Máy Tính >  >> Lập trình >> Java

Lớp PatternSyntaxException trong biểu thức chính quy Java

PatternSyntaxException lớp đại diện cho một ngoại lệ không được kiểm tra được ném ra trong trường hợp có lỗi cú pháp trong chuỗi regex. Lớp này chứa ba phương thức chính là -

  • getDescription () - Trả về mô tả lỗi.

  • getIndex () - Trả về chỉ số lỗi.

  • getPattern () - Trả về mẫu biểu thức chính quy có lỗi.

  • getMessage () - Trả về thông báo đầy đủ kèm theo lỗi, chỉ mục, mẫu biểu thức chính quy có lỗi, chỉ báo lỗi trong mẫu.

Ví dụ

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
public class PatternSyntaxExceptionExample {
   public static void main(String args[]) {
      //Reading String from user
      System.out.println("Enter a String");
      Scanner sc = new Scanner(System.in);String input = sc.nextLine();
      //Regular expression to match first digits of a word
      String regex = "["; //\\s+
      //Compiling the regular expression
      try {
         Pattern pattern = Pattern.compile(regex);
         //Retrieving the matcher object
         Matcher matcher = pattern.matcher(input);
         //Replacing all space characters with single space
         String result = matcher.replaceAll(" ");
         System.out.print("Text after removing unwanted spaces: \n"+result);
      }catch(PatternSyntaxException ex){
         System.out.println("Description: "+ex.getDescription());
         System.out.println("Index: "+ex.getIndex());
         System.out.println("Message: "+ex.getMessage());
         System.out.println("Pattern: "+ex.getPattern());
      }
   }
}

Đầu ra

Enter a String
this is a [sample text [
Description: Unclosed character class
Index: 0
Message: Unclosed character class near index 0
[
^
Pattern: [