Unicode Support

从 JDK 7 版本开始,正则表达式 Pattern 匹配已扩展了功能以支持 Unicode 6.0.

匹配特定的代码点

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

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

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

Unicode 字符属性

每个 Unicode 字符除其值外,还具有某些属性或属性。您可以使用表达式\p{prop}匹配属于特定类别的单个字符。您可以使用表达式\P{prop}匹配属于特定类别的单个字符* not *。

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

Scripts

要确定代码点是否属于特定脚本,可以使用script关键字,也可以使用sc缩写形式,例如\p{script=Hiragana}。或者,您可以在脚本名称前加上字符串Is,例如\p{IsHiragana}

Pattern支持的有效脚本名称是UnicodeScript.forName接受的脚本名称。

Blocks

可以使用block关键字或blk短格式(例如\p{block=Mongolian})指定一个块。或者,您可以在块名称前加上字符串In,例如\p{InMongolian}

Pattern支持的有效块名称是UnicodeBlock.forName接受的有效块名称。

General Category

可以使用可选的前缀Is来指定类别。例如,IsL匹配 Unicode 字母的类别。也可以使用general_category关键字或缩写形式gc来指定类别。例如,可以使用general_category=Lugc=Lu匹配大写字母。

受支持的类别是Character类指定的版本中的Unicode 标准类别。