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

  • 匹配特定的代码点
  • Unicode字符属性

    匹配特定的代码点

    您可以使用\uFFFF格式的转义序列来匹配特定的Unicode代码点,其中FFFF是您要匹配的代码点的十六进制值。 例如,\u6771与东部的汉字匹配。
    或者,您可以使用Perl样式的十六进制表示法\x{...}指定代码点。例如:
  1. String hexPattern = "\x{" + Integer.toHexString(codePoint) + "}";

Unicode字符属性

每个Unicode字符除其值外,还具有某些属性或属性。您可以使用\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类指定的版本中的Unicode标准类别。