在Java核心技术卷 卷2 第一章 Java SE 8 的流库的第3页,有这样一段代码:
List<String> words = Arrays.asList(contents.split("\\PL+"));
我们来看下 \\PL+ 的意义,这个正则的意思应该就是以非字母分隔符。
小写p是property的意思,表示Unicode属性,用于Unicode正表达式的前缀。
中括号内的P表示Unicode字符集七个字符属性之一:标点字符。
其他六个属性:
L:字母;
M:标记符号(一般不会单独出现);
Z:分隔符(比如空格、换行等);
S:符号(比如数学符号、货币符号等);
N:数字(比如阿拉伯数字、罗马数字等);
C:其他字符。
由此,"\\PL+"正则还可以派生以下格式:
"\\PN+" 非数字;
"\\PZ+" 非分隔符;
"\\PS+" 非符号;
等等....