Java 提供了 Regular Expressions 或 Regex(简称)API,用于创建字符串模式以在 Java 中搜索、操作和编辑字符串。此类在 java.util.regex 包下定义,它重点关注表示正则表达式模式中的语法错误的未经检查的异常。可以使用以下语法声明此类,
用法:
public class PatternSyntaxException extends IllegalArgumentException
该类具有以下构造函数:
PatternSyntaxException(String desc, String regex, int index) // It instantiates a new object of this class
PatternSyntaxException getMessage()方法
此方法返回一个多行字符串,其中包含正则表达式模式中的语法错误及其索引(正则表达式模式中的错误)的详细说明。它还以视觉格式说明了图案内error-index的指示。可以使用以下语法在 PatternSyntaxException 类的实例化对象上调用此方法。
用法:
error.getMessage()
这里,错误是PatterSyntaxException类的对象
返回类型:该方法返回一个多行字符串,即错误的详细说明。
示例 1:在此示例中,我们通过调用 Pattern 类的 compile() 方法定义了一个模式。它接受正则表达式(“[“) 作为参数并生成模式。然后,我们在 Pattern 类的实例化对象上调用 matcher() 方法。它接受输入作为参数。这将检查输入字符串中的正则表达式(模式)。此外,我们在匹配器对象上调用了replaceAll()方法。这将替换输入序列中与给定替换字符串的模式匹配的每个子序列。
请注意,我们已将这些语句捆绑在 Try 块内。在这种情况下,它将在正则表达式模式中引发语法错误,并通过 catch 块进行处理。 catch 块接受 PatternSyntaxException 类的对象,最终我们调用了该对象的 getMessage() 方法。
Java
// Java program to illustrate the
// working of getMessage() 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 message of the error occurred in
// the pattern
System.out.println("Message: "
+ e.getMessage());
}
}
}
Message: Unclosed character class near index 0 [ ^
示例 2:在此示例中,我们通过调用 Pattern 类的 compile() 方法定义了一个模式。它接受正则表达式(“{”) 作为参数并生成模式。然后,我们在 Pattern 类的实例化对象上调用 matcher() 方法。它接受输入作为参数。这将检查输入字符串中的正则表达式(模式)是否等于“Geeks”+“is a Learning platform.”。此外,我们在匹配器对象上调用了replaceAll()方法。这将替换输入序列中与给定替换字符串的模式匹配的每个子序列。
请注意,我们已将这些语句捆绑在 Try 块内。在这种情况下,它将在正则表达式模式中引发语法错误,并通过 catch 块进行处理。 catch 块接受 PatternSyntaxException 类的对象,最终我们调用了该对象的 getMessage() 方法。
Java
// Java program to illustrate the
// working of getMessage() 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 message of the error occurred in
// the pattern
System.out.println("Message: "
+ e.getMessage());
}
}
}
Message: Illegal repetition {
相关用法
- Java PatternSyntaxException getDescription()用法及代码示例
- Java PatternSyntaxException getIndex()用法及代码示例
- Java Pattern asPredicate()用法及代码示例
- Java Pattern compile(String)用法及代码示例
- Java Pattern flags()用法及代码示例
- Java Pattern matcher(CharSequence)用法及代码示例
- Java Pattern pattern()用法及代码示例
- Java Pattern quote(String)用法及代码示例
- Java Pattern splitAsStream()用法及代码示例
- Java Pattern split(CharSequence)用法及代码示例
- Java Pattern toString()用法及代码示例
- Java Pattern split(CharSequence,int)用法及代码示例
- Java Pattern matches(String ,CharSequence)用法及代码示例
- Java Pattern compile(String,int)用法及代码示例
- Java Pattern用法及代码示例
- Java Path compareTo()用法及代码示例
- Java Path endsWith()用法及代码示例
- Java Path equals()用法及代码示例
- Java Path getFileName()用法及代码示例
- Java Path getFileSystem()用法及代码示例
- Java Path getNameCount()用法及代码示例
- Java Path getName(int)用法及代码示例
- Java Path getParent()用法及代码示例
- Java Path getRoot()用法及代码示例
- Java Path hashCode()用法及代码示例
注:本文由纯净天空筛选整理自bhuwanesh大神的英文原创作品 Java PatternSyntaxException Class getMessage() Method with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。