當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java PatternSyntaxException getDescription()用法及代碼示例


Java PatternSyntaxException 類在 java.util.regex 包下定義,它專注於表示正則表達式模式中的語法錯誤的未經檢查的異常。可以使用以下語法聲明此類。

用法:

public class PatternSyntaxException extends IllegalArgumentException

該類具有以下構造函數:

PatternSyntaxException(String desc, String regex, int index) // It instantiates a new object of this class

PatternSyntaxException getDescription()方法

Java 提供了 Regular Expressions 或 Regex(簡稱)API,用於創建字符串模式以在 Java 中搜索、操作和編輯字符串。該方法用於獲取正則表達式模式中的錯誤說明。該方法具有以下語法,

用法:

error.getDescription()

這裏,錯誤是PatterSyntaxException類的對象

返回類型:該方法的返回類型是字符串,即錯誤的說明。

示例 1:在此示例中,我們通過調用 Pattern 類的 compile() 方法定義了一個模式。它接受正則表達式(“[“) 作為參數並生成模式。然後,我們在 Pattern 類的實例化對象上調用 matcher() 方法。它接受輸入作為參數。這將檢查正則表達式 輸入字符串中的(模式)。此外,我們在匹配器對象上調用了replaceAll()方法。這將替換輸入序列中與給定替換字符串的模式匹配的每個子序列。

請注意,我們已將這些語句捆綁在 Try 塊內。在這種情況下,它將在正則表達式模式中引發語法錯誤,並通過 catch 塊進行處理。 catch 塊接受 PatternSyntaxException 類的對象,最終我們調用了該對象的 getDescription() 方法。

Java


// Java program to illustrate the working of getIndex()
// method
import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
class GFG {
    private static String regularExpression = "[";
    private static String input
        = "GeeksforGeeks "
          + "is a learning platform.";
    private static String replace = "Hi";
    public static void main(String[] args)
    {
        try {
            // Compile the pattern
            Pattern pattern
                = Pattern.compile(regularExpression);
            // To get a matcher object
            Matcher matcher = pattern.matcher(input);
            input = matcher.replaceAll(replace);
        }
        catch (PatternSyntaxException e) {
            // Print the description of the error occurred in
            // the pattern
            System.out.println("Description: "
                               + e.getDescription());
        }
    }
}


輸出
Description: Unclosed character class

示例 2:在此示例中,我們通過調用 Pattern 類的 compile() 方法定義了一個模式。它接受正則表達式(“{”) 作為參數並生成一個模式。然後,我們在 Pattern 類的實例化對象上調用 matcher() 方法。它接受輸入作為參數。這將檢查輸入字符串中的正則表達式(模式)是否等於“Geeks”+“is a Learning platform.”。此外,我們在匹配器對象上調用了replaceAll()方法。這將替換輸入序列中與給定替換字符串的模式匹配的每個子序列。

請注意,我們已將這些語句捆綁在 Try 塊內。在這種情況下,它將在正則表達式模式中引發語法錯誤,並通過 catch 塊進行處理。 catch 塊接受 PatternSyntaxException 類的對象,最終我們調用了該對象的 getDescription() 方法。

Java


// Java program to illustrate the working of getIndex()
// method
import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
class GFG {
    // Declaring a string variable to store the regular
    // expression
    private static String regularExpression = "{";
    private static String input
        = "GeeksforGeeks "
          + "is a learning platform.";
    private static String replace = "Hello";
    public static void main(String[] args)
    {
        try {
            // Compile the pattern
            Pattern pattern
                = Pattern.compile(regularExpression);
            // To get a matcher object
            Matcher matcher = pattern.matcher(input);
            input = matcher.replaceAll(replace);
        }
        catch (PatternSyntaxException e) {
            // Print the index in the error of the pattern
            System.out.println("Description: "
                               + e.getDescription());
        }
    }
}


輸出
Description: Illegal repetition


相關用法


注:本文由純淨天空篩選整理自bhuwanesh大神的英文原創作品 Java PatternSyntaxException Class getDescription() Method with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。