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提供了正则表达式或正则表达式(简称)API,用于创建字符串模式以在Java中搜索、操作和编辑字符串。此方法用于获取正则表达式模式中的错误描述。此方法具有以下语法,
句法:
error.getDescription()
这里,错误是 PatterSyntaxException 类的对象
返回类型:该方法的返回类型是一个字符串,即对错误的描述。
示例 1:在此示例中,我们通过调用 Pattern 类的 compile() 方法定义了一个模式。它接受正则表达式(“[”)作为参数并生成一个模式。然后,我们在 Pattern 类的实例化对象上调用 matcher() 方法。它接受输入作为参数。这将检查正则表达式 (模式)在输入字符串中。此外,我们在 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());
}
}
}
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: Unclosed character class
示例 2:在此示例中,我们通过调用 Pattern 类的 compile() 方法定义了一个模式。它接受正则表达式(“{”) 作为参数并生成模式。然后,我们在 Pattern 类的实例化对象上调用 matcher() 方法。它接受输入作为参数。这将检查输入字符串中的正则表达式(模式)等于“极客”+“是一个学习平台。”。此外,我们在 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 {
// 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