Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Lớp PatternSyntaxException trong Java Regular Expressions


Khái niệm

PatternSyntaxException - unchecked exception ném ra khi regex có lỗi cú pháp.

Các phương thức chính

  • getDescription() - mô tả lỗi
  • getIndex() - vị trí lỗi trong pattern
  • getPattern() - pattern bị lỗi
  • getMessage() - thông báo đầy đủ

Ví dụ bắt exception

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) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Nhập chuỗi: ");
        String input = sc.nextLine();
        String regex = "["; // lỗi: unclosed character class
        try {
            Pattern pattern = Pattern.compile(regex);
            Matcher matcher = pattern.matcher(input);
            String result = matcher.replaceAll(" ");
            System.out.println("Kết quả: " + result);
        } catch (PatternSyntaxException ex) {
            System.out.println("Mô tả: " + ex.getDescription());
            System.out.println("Index: " + ex.getIndex());
            System.out.println("Thông báo: " + ex.getMessage());
            System.out.println("Pattern: " + ex.getPattern());
        }
    }
}

Kết quả

Nhập chuỗi: this is a [sample text [
Mô tả: Unclosed character class
Index: 0
Thông báo: Unclosed character class near index 0
[
^
Pattern: [

Các lỗi thường gặp

LỗiNguyên nhân
Unclosed character classThiếu ] trong [...]
Unclosed groupThiếu ) trong (...)
Dangling meta character*, +, ? ở đầu hoặc sau quantifier khác
Invalid escapeEscape sai trong string literal (cần \\\\ trong Java)