java一些标点符号与模式不匹配。UNICODE_字符_类标志已启用
我有一个问题,匹配一些标点符号时,模式。UNICODE_字符_类标志已启用
示例代码如下所示:
final Pattern p = Pattern.compile("\\p{Punct}",Pattern.UNICODE_CHARACTER_CLASS);
final Matcher matcher = p.matcher("+");
System.out.println(matcher.find());
输出为false,尽管文档中明确指出p{Punct}包含以下字符!“#$%&;'()*+,-./:;<;=>;?@[]^ `{124;}”~
除了“+”符号之外,以下字符$+<=>^`|~
当模式。UNICODE_字符_类被删除,它工作正常
如果能给我一些关于这个问题的提示,我将不胜感激
# 1 楼答案
javadoc声明了//p{punc}下的内容,并警告
POSIX字符类(仅限US-ASCII)
如果你看一下unicode中的标点符号字符,没有+或$。看看http://www.fileformat.info/info/unicode/category/Po/list.htm的unicode标点字符