[英]Java regex logical number of matched characters
假設我需要匹配一個字符串,該字符串包含不適合16位且由Java中的高-低代理對處理的字符。 例如披薩片字符。
我寫了下面的代碼來匹配它:
Pattern pattern = Pattern.compile("\uD83C\uDF55");
String s = "\uD83C\uDF55";
Matcher matcher = pattern.matcher(s);
matcher.find();
System.out.println(matcher.end());
令我驚訝的是,輸出結果是2而不是1,因為邏輯上只有一個字符。 有沒有辦法告訴Java正則表達式匹配器在這里返回1?
否String
對象使用char[]
作為后備結構。 大多數String
方法使用該數組中的char
值進行操作。 Matcher
也一樣。 它報告匹配的模式相對於基礎char[]
開始和結束位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.