【发布时间】:2018-12-23 22:51:02
【问题描述】:
我不是正则表达式方面的专家,这可能是一个明显的原因,但我找不到答案。
我使用 POSIX 表示法以不区分大小写的方式在 Java 中使用 Regex 匹配字符串 (n)。给定:
Pattern pattern = Pattern.compile("\\p{Upper}", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher("n");
为什么下面的代码会导致false?
boolean find = matcher.find();
在Pattern 文档中,我发现了以下内容(强调我的):
\p{Upper} 大写字母字符:[A-Z]
针对正则表达式[A-Z] 进行测试,true 中的结果如下:
Pattern pattern = Pattern.compile("[A-Z]", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher("n");
boolean find = matcher.find();
有什么区别?
【问题讨论】:
-
至少对于 openjdk 来说,您 are not the only one 似乎正在经历这种行为。
-
@Glains:太好了,就是这样!因此对于 Java 8 来说显然是一样的。不幸的是仍然标记为
OPEN。
标签: java regex string pattern-matching posix