2012-12-06 29 views
0

我想檢測一個字符串是否包含Android應用程序中的所有大寫字符。由於字母可以用變音標記等來裝飾,因此作爲字符類別是不夠的。我想使用\p{IsLu}+作爲模式,但它不斷給我一個PatternSyntaxError在正則表達式中使用Unicode類別名稱時PatternSyntaxException

但是,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):在java.util.regex.Pattern.compileImpl(Native Method)

回答

6

看來,在您的實際代碼中,您已寫入isLu而不是IsLu。但是,Is只是一個別名。通常的Unicode屬性只是\p{Lu}