0

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(ネイティブ メソッド) で

4

1 に答える 1

6

実際のコードでは、のisLu代わりに書いたようですIsLu。ただし、Isとにかく単なるエイリアスです。通常の Unicode プロパティは単に\p{Lu}.

于 2012-12-06T22:38:25.177 に答える