Java 如何替换所有非补充字符,但保留所有补充字符?

Java 如何替换所有非补充字符,但保留所有补充字符?,java,regex,regex-negation,negation,supplementary,Java,Regex,Regex Negation,Negation,Supplementary,我对应用于补充字符的Java正则表达式有一个问题 String x=new StringBuilder().appendCodePoint(0x10001.toString(); //x==“可能尝试查看@BeeOnRope没有锚;它是[^而不是^[。第二个正则表达式是“匹配代码点不在范围10000-10010范围内的任何字符。”“.Oops duh!看起来像是Unicode处理字符类中的一个bug。显然,正则表达式错误地匹配了代理项对的后半部分并替换了它。这与沿着代码路径错误地以“代码单位”而

我对应用于补充字符的Java正则表达式有一个问题

String x=new StringBuilder().appendCodePoint(0x10001.toString();

//x==“可能尝试查看@BeeOnRope没有锚;它是
[^
而不是
^[
。第二个正则表达式是“匹配代码点不在范围
10000-10010范围内的任何字符。”“.Oops duh!看起来像是Unicode处理字符类中的一个bug。显然,正则表达式错误地匹配了代理项对的后半部分并替换了它。这与沿着代码路径错误地以“代码单位”而不是“代码点”递增是一致的。