Android アプリで文字列がすべて大文字で構成されているかどうかを検出しようとしています。[A-Z]
文字は分音記号などで装飾されている可能性があるため、文字クラスとしては十分ではありません。パターンに使用したい\p{IsLu}+
のですが、常にPatternSyntaxError
.
ただし、API リファレンスはこれらの Unicode カテゴリ名を宣伝しています。エミュレーターが実行している API レベルは 11 です。
regexplanetなどの正規表現テスターで正規表現パターンを試してみると、正常に動作します。
これは logcat の出力です。
12-06 22:08:07.854: E/AndroidRuntime(737): 致命的な例外: メイン
12-06 22:08:07.854: E/AndroidRuntime(737): java.util.regex.PatternSyntaxException: U_ILLEGAL_ARGUMENT_ERROR
12-06 22: 08:07.854: E/AndroidRuntime(737): \p{isLu}+
12-06 22:08:07.854: E/AndroidRuntime(737): java.util.regex.Pattern.compileImpl(ネイティブ メソッド) で