2012-12-06 1 views
0

Я пытаюсь определить, состоит ли строка из всех прописных символов в приложении для Android. [A-Z] в качестве символьного класса недостаточно, поскольку буквы могут быть украшены диакритическими знаками и тому подобное. Я хотел бы использовать \p{IsLu}+ для рисунка, но он постоянно дает мне PatternSyntaxError.PatternSyntaxException при использовании имен категорий Unicode в regex

Однако API reference рекламирует эти категории категорий Юникод. Уровень API, на котором работает мой эмулятор, равен 11.

Если я попробую свой шаблон регулярного выражения на регулярном выражении, например, на regexplanet он отлично работает.

Это выход LogCat:

12-06 22: 08: 07,854: Е/AndroidRuntime (737): неустранимый: Главный
12-06 22: 08: 07,854: Е/AndroidRuntime (737): java.util.regex.PatternSyntaxException: U_ILLEGAL_ARGUMENT_ERROR
12-06 22: 08: 07,854: Е/AndroidRuntime (737): \ р {ИГЛУ} +
12-06 22: 08: 07,854: Е/AndroidRuntime (737): at java.util.regex.Pattern.compileImpl (родной метод)

ответ

6

Похоже, что в вашем фактическом коде вы написали isLu вместо IsLu. Тем не менее, Is - это просто псевдоним. Обычное свойство Unicode - это просто \p{Lu}.