簡體   English   中英

Java正則表達式匹配字符的邏輯數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM