相关疑难解决方法(0)

Java不区分大小写的正则表达式匹配不适用于字母Ñ

考虑这个程序:

import java.util.regex.Pattern;
public class xx {

    /*
     *  Ñ
     *  LATIN CAPITAL LETTER N WITH TILDE
     *  Unicode: U+00D1, UTF-8: C3 91
     */
    public static final String BIG_N = "\u00d1";

    /*
     *  ñ
     *  LATIN SMALL LETTER N WITH TILDE
     *  Unicode: U+00F1, UTF-8: C3 B1
     */
    public static final String LITTLE_N = "\u00f1";

    public static void main(String[] args) throws Exception {
        System.out.println(BIG_N.equalsIgnoreCase(LITTLE_N));
        System.out.println(Pattern.compile(BIG_N, Pattern.CASE_INSENSITIVE).matcher(LITTLE_N).matches());
    }
}
Run Code Online (Sandbox Code Playgroud)

由于Ñ是ñ的大写版本,你可以期望它打印:

true
true
Run Code Online (Sandbox Code Playgroud)

但它实际打印的内容(java 1.7.0_17-b02)是:

true
false
Run Code Online (Sandbox Code Playgroud)

为什么?

java regex

10
推荐指数
1
解决办法
1706
查看次数

标签 统计

java ×1

regex ×1