Java 1.8.0_241 で正規表現が有効かどうかをテストしたい
public static boolean isRegExpValid(String regExp) {
try {
Pattern.compile(regExp);
return true;
} catch (PatternSyntaxException e) {
return false;
}
}
ここでは、3 桁の数値の正しい正規表現と、正しくない正規表現をテストしています。
@Test
public void testValidRegexp() {
assertTrue(isRegExpValid("\\d{3}"));
}
@Test
public void testInvalidRegexp() {
assertFalse(isRegExpValid("{3}"));
}
2 番目のテストtestInvalidRegexp
が失敗するのはなぜですか? isRegExpValid("{3}")
false を返す必要がありますが、true を返します。