Java : PatternSyntaxException (正規表現) - API使用例
PatternSyntaxException (Java SE 22 & JDK 22) の使い方まとめです。
ほとんどのメソッドにサンプルコードがあります。
API仕様書のおともにどうぞ。
概要
正規表現パターンの構文エラーを示すためにスローされる、非チェック例外です。
PatternSyntaxException は、正規表現に構文エラーがあるときに発生する非チェック例外です。
// OK
final var pattern = Pattern.compile("[a-z]");
final var predicate = pattern.asPredicate();
System.out.println(predicate.test("abc")); // true
System.out.println(predicate.test("123")); // false
// NG
try {
var _ = Pattern.compile("[a-z");
} catch (PatternSyntaxException e) {
System.out.println("PatternSyntaxException! : " + e.getMessage());
}
// 結果
// ↓
//PatternSyntaxException! : Unclosed character class near index 3
//[a-z
// ^
コンストラクタ
PatternSyntaxException (String desc, String regex, int index)
このクラスの新しいインスタンスを構築します。
final var e = new PatternSyntaxException("abc", "xyz", 10);
System.out.println(e);
// 結果
// ↓
//java.util.regex.PatternSyntaxException: abc near index 10
//xyz
System.out.println(e.getDescription()); // abc
System.out.println(e.getPattern()); // xyz
System.out.println(e.getIndex()); // 10
メソッド
String getDescription ()
エラーの説明を取り出します。
final var e = new PatternSyntaxException("abc", "xyz", 10);
System.out.println(e);
// 結果
// ↓
//java.util.regex.PatternSyntaxException: abc near index 10
//xyz
System.out.println(e.getDescription()); // abc
System.out.println(e.getPattern()); // xyz
System.out.println(e.getIndex()); // 10
int getIndex ()
エラー・インデックスを取り出します。
final var e = new PatternSyntaxException("abc", "xyz", 10);
System.out.println(e);
// 結果
// ↓
//java.util.regex.PatternSyntaxException: abc near index 10
//xyz
System.out.println(e.getDescription()); // abc
System.out.println(e.getPattern()); // xyz
System.out.println(e.getIndex()); // 10
String getMessage ()
複数行で構成される文字列を返します。構文エラーの説明とそのインデックス、およびエラーが発生した正規表現パターンのほかに、パターン内のエラー・インデックスを視覚的に表現した文字列も返します。
final var e = new PatternSyntaxException("abc", "xyz", 10);
System.out.println(e.getMessage());
// 結果
// ↓
//abc near index 10
//xyz
String getPattern ()
エラーが発生した正規表現パターンを取り出します。
final var e = new PatternSyntaxException("abc", "xyz", 10);
System.out.println(e);
// 結果
// ↓
//java.util.regex.PatternSyntaxException: abc near index 10
//xyz
System.out.println(e.getDescription()); // abc
System.out.println(e.getPattern()); // xyz
System.out.println(e.getIndex()); // 10
Throwableで宣言されたメソッド
addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
「Java API 使用例 : Throwable」をご参照ください。
関連記事
- API 使用例