Java Regex - Lớp PatternSyntaxException

Giới thiệu

Các java.util.regex.PatternSyntaxException lớp đại diện cho một ngoại lệ không được kiểm tra được ném ra để chỉ ra lỗi cú pháp trong mẫu biểu thức chính quy.

Khai báo lớp

Sau đây là khai báo cho java.util.regex.PatternSyntaxException lớp học -

public class PatternSyntaxException
   extends IllegalArgumentException

Người xây dựng

Sr.No Phương pháp & Mô tả
1 PatternSyntaxException(String desc, String regex, int index)

Xây dựng một thể hiện mới của lớp này.

Phương thức lớp

Sr.No Phương pháp & Mô tả
1 String getDescription()

Truy xuất mô tả của lỗi.

2 int getIndex()

Truy xuất chỉ số lỗi.

3 String getMessage()

Trả về một chuỗi nhiều dòng chứa mô tả về lỗi cú pháp và chỉ mục của nó, mẫu biểu thức chính quy bị lỗi và chỉ báo trực quan về chỉ mục lỗi trong mẫu.

4 String getPattern()

Truy xuất mẫu biểu thức chính quy bị lỗi.

Các phương thức kế thừa

Lớp này kế thừa các phương thức từ các lớp sau:

  • Java.lang.Throwable
  • Java.lang.Object

Thí dụ

Ví dụ sau cho thấy việc sử dụng các phương thức lớp java.util.regex.Pattern.PatternSyntaxException.

package com.tutorialspoint;

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;

public class PatternSyntaxExceptionDemo {
   private static String REGEX = "[";
   private static String INPUT = "The dog says meow " + "All dogs say meow.";
   private static String REPLACE = "cat";

   public static void main(String[] args) {
      try{
         Pattern pattern = Pattern.compile(REGEX);
         
         // get a matcher object
         Matcher matcher = pattern.matcher(INPUT); 
         INPUT = matcher.replaceAll(REPLACE);
      } catch(PatternSyntaxException e){
         System.out.println("PatternSyntaxException: ");
         System.out.println("Description: "+ e.getDescription());
         System.out.println("Index: "+ e.getIndex());
         System.out.println("Message: "+ e.getMessage());
         System.out.println("Pattern: "+ e.getPattern());
      }
   }
}

Hãy để chúng tôi biên dịch và chạy chương trình trên, điều này sẽ tạo ra kết quả sau:

PatternSyntaxException: 
Description: Unclosed character class
Index: 0
Message: Unclosed character class near index 0
[
^
Pattern: [