java.util.regex.PatternSyntaxException类表示抛出的未经检查的异常,以指示正则表达式模式中的语法错误。
类声明
以下是java.util.regex.PatternSyntaxException类的声明
public class PatternSyntaxException extends IllegalArgumentException
构造函数
| Sr.No | Method & Remark |
|---|---|
| 1 |
PatternSyntaxException(String desc, String regex, int index) 构造此类的新实例。 |
类方法
| Sr.No | Method & Remark |
|---|---|
| 1 |
String getDescription() 检索错误的说明。 |
| 2 |
int getIndex() 检索错误索引。 |
| 3 |
String getMessage() 返回一个多行字符串,其中包含语法错误及其索引的说明、错误的正则表达式模式以及模式内错误索引的可视指示。 |
| 4 |
String getPattern() 检索错误的正则表达式模式。 |
下面的示例显示java.util.regex.Pattern.PatternSyntaxException类方法的用法。
package com.learnfk;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
public class PatternSyntaxExceptionDemo {
private static String REGEX="[";
private static String INPUT="The dog says meow " + "All dogs say meow.";
private static String REPLACE="cat";
public static void main(String[] args) {
try{
Pattern pattern=Pattern.compile(REGEX);
</span><span class="com">//获取匹配器对象</span><span class="pln">
</span><span class="typ">Matcher</span><span class="pln"> matcher</span><span class="pun">=</span><span class="pln">pattern</span><span class="pun">.</span><span class="pln">matcher</span><span class="pun">(</span><span class="pln">INPUT</span><span class="pun">);</span><span class="pln">
INPUT</span><span class="pun">=</span><span class="pln">matcher</span><span class="pun">.</span><span class="pln">replaceAll</span><span class="pun">(</span><span class="pln">REPLACE</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln"> </span><span class="kwd">catch</span><span class="pun">(</span><span class="typ">PatternSyntaxException</span><span class="pln"> e</span><span class="pun">){</span><span class="pln">
</span><span class="typ">System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="str">"PatternSyntaxException: "</span><span class="pun">);</span><span class="pln">
</span><span class="typ">System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="str">"Remark: "</span><span class="pun">+</span><span class="pln"> e</span><span class="pun">.</span><span class="pln">getRemark</span><span class="pun">));</span><span class="pln">
</span><span class="typ">System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="str">"Index: "</span><span class="pun">+</span><span class="pln"> e</span><span class="pun">.</span><span class="pln">getIndex</span><span class="pun">());</span><span class="pln">
</span><span class="typ">System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="str">"Message: "</span><span class="pun">+</span><span class="pln"> e</span><span class="pun">.</span><span class="pln">getMessage</span><span class="pun">());</span><span class="pln">
</span><span class="typ">System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="str">"Pattern: "</span><span class="pun">+</span><span class="pln"> e</span><span class="pun">.</span><span class="pln">getPattern</span><span class="pun">());</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
}
}
让无涯教程编译并运行上述程序,这将产生以下输出-
PatternSyntaxException: Remark: Unclosed character class Index: 0 Message: Unclosed character class near index 0 [ ^ Pattern: [