Java支持哪些内置的正则表达式字符类

时间:2011-12-27 23:20:02

标签: java regex character-class

...用于像"\\p{someCharacterClass}"这样的模式。
我用过/见过一些:

  • InCombiningDiacriticalMarks
  • ASCII

所有受支持的内置角色的最终列表是什么?它在哪里记录?具体含义是什么?

编辑...

似乎有很多“RTFM”答案引用了Pattern的javadoc。这是我在问这个问题之前看到的第一个地方。就这样每个人都很清楚,Pattern的javadoc没有提到上面列出的任何类。

“正确”的答案会在页面的某处提及“InCombiningDiacriticalMarks”,并且不会对“Unicode标准”有一些含糊的提及。

5 个答案:

答案 0 :(得分:10)

“{3}}在”Unicode支持“部分中说:

  

支持的类别是Character类指定的版本中的Unicode标准类别。类别名称是标准中定义的类别,包括规范性和信息性。 Pattern支持的块名称是UnicodeBlock.forName接受和定义的有效块名称。

documentation for Pattern州:

  

块名称由Unicode标准确定。

documentation for UnicodeBlock.forName点上有常见问题http://unicode.org

  

答:Unicode块及其名称是Unicode标准的标准部分。确切列表始终保存在Where can I find the definitive list of Unicode blocks?Unicode Character Database

的其中一个文件中

最后,在Blocks.txt中有一行:

0300..036F; Combining Diacritical Marks

这些字符可在Blocks.txt代码表(来自Combining Diacritical Marks)中找到。

答案 1 :(得分:1)

Pattern API表示遵守http://www.unicode.org/reports/tr18/

定义的正则表达式级别1

有三个不错的表(搜索UCD.html),并查看UCD.html本身。

答案 2 :(得分:0)

规范是http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html。在某些情况下,它指的是特定版本的TUS,您可以在http://unicode.org找到该材料。

答案 3 :(得分:0)

This page有一些很好的细节,例如:

  • \p{L}\p{Letter}:来自任何语言的任何类型的信件。
  • \p{M}\p{Mark}:用于与其他角色合并的角色(例如重音符号,变音符号,封闭框等)。
  • \p{N}\p{Number}:任何脚本中的任何数字字符。

答案 4 :(得分:-1)

在javadocs中查找Pattern类。