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): at java.util.regex.Pattern.compileImpl(Native Method)

4

1 回答 1

6

似乎在您编写的实际代码中,isLu而不是IsLu. 但是,Is无论如何,这只是一个别名。通常的 Unicode 属性是简单的\p{Lu}.

于 2012-12-06T22:38:25.177 回答