# Unicode 支持

作为 JDK 7 发布,正则表达式模式匹配的扩展功能支持 Unicode 6。

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

# 匹配特定的代码点

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

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

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

----? 然而并没有看懂这个匹配的是个啥。

# 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=Lu 或匹配大写字母 gc=Lu。

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

---?这一章节我是完全没有看懂是个啥