该Java教程是针对JDK 8编写的。本页中描述的示例和实践不利用后续版本中引入的改进,并且可能使用已不再可用的技术。
有关Java SE 9及其后续版本中更新的语言特性的摘要,请参见Java语言更改。
有关所有JDK版本的新功能、增强功能和已删除或不推荐使用选项的信息,请参见JDK发行说明。
自JDK 7版本发布以来,正则表达式模式匹配已扩展功能以支持Unicode 6.0。
您可以使用形式为\uFFFF
的转义序列来匹配特定的Unicode代码点,其中FFFF
是要匹配的代码点的十六进制值。例如,\u6771
匹配表示东方的汉字。
另外,您可以使用Perl样式的十六进制表示法\x{...}
指定代码点。例如:
String hexPattern = "\x{" + Integer.toHexString(codePoint) + "}";
除了值之外,每个Unicode字符还具有某些属性。您可以使用表达式\p{prop}
来匹配属于特定类别的单个字符。您可以使用表达式\P{prop}
来匹配不属于特定类别的单个字符。
支持的三种属性类型是脚本、块和“general”类别。
要确定代码点是否属于特定脚本,您可以使用script
关键字或sc
简写形式,例如\p{script=Hiragana}
。另外,您还可以在脚本名称前加上字符串Is
,例如\p{IsHiragana}
。
Pattern
支持的有效脚本名称是由UnicodeScript.forName
接受的名称。
可以使用block
关键字或blk
简写形式指定块,例如\p{block=Mongolian}
。另外,您还可以在块名称前加上字符串In
,例如\p{InMongolian}
。
Pattern
支持的有效块名称是由UnicodeBlock.forName
接受的名称。
可以使用可选前缀Is
来指定类别。例如,IsL
匹配Unicode字母的类别。也可以使用general_category
关键字或简写形式gc
来指定类别。例如,可以使用general_category=Lu
或gc=Lu
来匹配大写字母。