2
我有一個名稱的正則表達式,我希望匹配變音符號。下面是從開始我的代碼記錄片段與test.java:191:Android:Pattern.UNICODE_CASE不匹配變音符號
Util.Log("text = " + text);
Util.Log("regex = " + regex);
Util.Log("regexorig = " + regexorig);
Util.Log("Matches static: " + Pattern.matches(text, regex));
Pattern p1 = Pattern.compile(regex);
Util.Log("Matches p1: " + p1.matcher(text).matches());
Pattern p2 = Pattern.compile(regexorig, Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE);
Util.Log("Matches p2: " + p2.matcher(text).matches());
Util.Log("String matches: " + text.matches(regex));
下面是輸出的,當我用輸入「ü」:
LOG: (test.java:191):text = ü
LOG: (test.java:192):regex = (?iu)[A-Z][A-Z0-9 \-.',]*
LOG: (test.java:193):regexorig = [A-Z][A-Z0-9 \-.',]*
LOG: (test.java:194):Matches static: false
LOG: (test.java:196):Matches p1: false
LOG: (test.java:198):Matches p2: false
LOG: (test.java:199):String matches: false
我似乎無法得到一個音調符號 - 敏感的正則表達式匹配工作。這是一個Android錯誤還是我錯過了什麼?根據documentation,對於Android不區分大小寫的字符串,UNICODE_CASE總是處於開啓狀態,所以我甚至不需要它(真的不知道爲什麼會這樣,但這是一個不同的討論)。
優秀的,謝謝。它在這方面似乎與iOS不同。 – Oded
@Oded我剛剛注意到可能有另一個問題(並編輯答案) –
它會工作以匹配Unicode字母數字? –