Java不区分大小写的正则表达式匹配不符合字母?
发布时间:2020-12-14 05:45:07 所属栏目: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
考虑这个程序:
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()); } } 由于?是?的大写版本,您可以期望打印: true true 但它实际打印(java 1.7.0_17-b02)是: true false 为什么? 解决方法
http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html#CASE_INSENSITIVE 为了完整;你或(|)旗帜在一起. Pattern.compile(BIG_N,Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |