...当用于"\p{someCharacterClass}"
等模式时。
我使用/见过一些:
- 降低
- 上
- 合并变音符号
- ASCII
所有受支持的内置字符分类的最终列表是什么?它在哪里记录?确切的含义是什么?
编辑。。。
似乎有很多"RTFM"答案引用了 javadoc 的Pattern
。这是我在问这个问题之前看的第一个地方。为了让每个人都清楚,Pattern 的 javadoc 没有提到上面列出的任何类。
正确"答案会在页面上的某个地方提到"InCombiningDiacriticalMarks",而不是对"Unicode Standards"的模糊引用。
Pattern
的文档在"Unicode 支持"部分中说:
支持的类别是字符类指定的版本中的 Unicode 标准的类别。类别名称是标准中定义的名称,既规范性又信息性。模式支持的块名称是
UnicodeBlock.forName
接受和定义的有效块名称。
UnicodeBlock.forName
的文档指出:
块名称由 Unicode 标准确定。
http://unicode.org 有常见问题解答在哪里可以找到Unicode块的最终列表?
答:Unicode 块及其名称是 Unicode 标准的规范部分。确切的列表始终保存在 Unicode 字符数据库的一个文件中,
Blocks.txt
.
最后,在Blocks.txt
中有这样一句话:
0300..036F;组合变音符号
这些字符可以在组合变音符号代码表(来自 Unicode 6.0 字符代码表(中找到。
模式 API 表示要遵守由 http://www.unicode.org/reports/tr18/定义的正则表达式级别 1
有三个漂亮的表格(搜索UCD.html(,看看UCD本身.html。
http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html。在某些情况下,它指的是特定版本的TUS,您可以在 http://unicode.org 找到该材料。
此页面提供了一些流行类的良好详细信息,例如:
-
p{L}
或p{Letter}
:来自任何语言的任何类型的字母。 -
p{M}
或p{Mark}
:打算与另一个字符组合的字符(例如重音符号、变音符号、封闭框等(。 -
p{N}
或p{Number}
:任何脚本中的任何类型的数字字符。
在javadocs中查找Pattern class。