我正在尝试检测字符串是否包含Android应用中的所有大写字符。 [A-Z]
作为字符类是不够的,因为字母可以用变音符号等来装饰。我想使用\p{IsLu}+
作为模式,但它不断给我一个PatternSyntaxError
。
但是API reference会公布这些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)
答案 0 :(得分:6)
在您的实际代码中,您似乎已经编写了isLu
而不是IsLu
。但是,Is
无论如何都只是一个别名。通常的Unicode属性只是\p{Lu}
。