文档

Java™ 教程-Java Tutorials 中文版
Unicode 支持
Trail: Essential Classes
Lesson: Regular Expressions

Unicode 支持

从 JDK 7 版本开始,正则表达式模式匹配扩展了支持 Unicode 6.0 的功能。

匹配特定的代码点

你可以使用格式 \uFFFF 的转义序列匹配特定的 Unicode 代码点,其中 FFFF 是要匹配的代码点的十六进制值。例如,\u6771 匹配东方的汉字符。

或者,你可以使用 Perl 样式的十六进制表示法 \x{...} 指定代码点。例如:

String hexPattern = "\x{" + Integer.toHexString(codePoint) + "}";

Unicode 字符属性

除了其值之外,每个 Unicode 字符都具有某些属性(attributes)或属性(properties)。你可以将属于特定类别的单个字符与表达式 \p{prop} 进行匹配。你可以使用表达式 \P{prop} 匹配 属于特定类别的单个字符。

支持的三种属性类型是脚本,块和“常规”类别。

脚本

要确定代码点是否属于特定脚本,可以使用 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=Lugc=Lu 匹配大写字母。

支持的类别是 Character 类指定的版本中 The Unicode Standard 的类别。


Previous page: Methods of the PatternSyntaxException Class
Next page: Additional Resources