当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。