# Unicode 支持

> 原文： [https://docs.oracle.com/javase/tutorial/essential/regex/unicode.html](https://docs.oracle.com/javase/tutorial/essential/regex/unicode.html)

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

*   [匹配特定代码点](#matchingSpecific)
*   [Unicode 字符属性](#properties)

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

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

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

```

除了其值之外，每个 Unicode 字符都具有某些属性或属性。您可以将属于特定类别的单个字符与表达式 `\ p { _prop_ }` 进行匹配。您可以使用表达式 `\ P { _prop_ }` 匹配属于特定类别的单个字符 _ 而不是 _。

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

### 脚本

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

`Pattern`支持的有效脚本名称是 [`UnicodeScript.forName`](https://docs.oracle.com/javase/8/docs/api/java/lang/Character.UnicodeScript.html#forName-java.lang.String-) 接受的名称。

### 块

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

`Pattern`支持的有效块名称是 [`UnicodeBlock.forName`](https://docs.oracle.com/javase/8/docs/api/java/lang/Character.UnicodeBlock.html#forName-java.lang.String-) 接受的名称。

### 一般类别

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

支持的类别是[由](https://docs.oracle.com/javase/8/docs/api/java/lang/Character.html) [`Character`](https://docs.oracle.com/javase/8/docs/api/java/lang/Character.html) 类指定的版本中的 Unicode 标准。