【问题标题】:What built-in regex character classes are supported Java支持哪些内置正则表达式字符类 Java
【发布时间】:2012-01-28 19:59:30
【问题描述】:

...当用于 "\\p{someCharacterClass}" 等模式时。
我用过/看过一些:

  • 降低
  • 上层
  • InCombining DiacriticalMarks
  • ASCII

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

已编辑...

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

“正确”答案会在页面某处提及“InCombiningDiacriticalMarks”,而不是对“Unicode 标准”的模糊引用。

【问题讨论】:

  • 你检查过Pattern documentation吗?
  • @GregHewgill 是的,我确实检查过......你呢?那是我首先查看的地方,那里没有提到上述内容,也没有任何指向页面的链接
  • 参见标题为“POSIX 字符类”、“java.lang.Character 类”和“Unicode 支持”的部分:支持的类别是由 Unicode 标准指定的版本字符类。类别名称是标准中定义的名称,包括规范性和信息性。 Pattern 支持的块名称是 UnicodeBlock.forName 接受和定义的有效块名称。
  • @GregHewgill 好的,很酷。那么,列出上述所有内容及其含义的页面的链接到底是什么?
  • 我去了UnicodeBlock.forName,然后转到unicode.org,在那里我找到了Where can I find the definitive list of Unicode blocks?,最后找到了Blocks.txt

标签: java regex character-class


【解决方案1】:

documentation for Pattern 在“Unicode 支持”部分中说:

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

documentation for UnicodeBlock.forName 声明:

块名称由 Unicode 标准确定。

http://unicode.org 上有常见问题解答Where can I find the definitive list of Unicode blocks?

答:Unicode 块及其名称是 Unicode 标准的规范部分。确切的列表始终保存在Unicode Character DatabaseBlocks.txt 的文件之一中。

最后,Blocks.txt 中有一行:

0300..036F;组合变音符

这些字符可以在Combining Diacritical Marks 代码表中找到(来自Unicode 6.0 Character Code Charts)。

【讨论】:

    【解决方案2】:

    模式 API 表示遵守 http://www.unicode.org/reports/tr18/ 定义的正则表达式级别 1

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 是的,我在发布这个问题之前阅读了 Pattern javadoc。列出所有类及其含义的页面的确切链接是什么?
      【解决方案4】:

      This page 为一些受欢迎的课程提供了一些很好的细节,例如:

      • \p{L}\p{Letter}:任何语言的任何类型的信件。
      • \p{M}\p{Mark}:旨在与另一个字符组合的字符(例如重音符号、变音符号、封闭框等)。
      • \p{N}\p{Number}:任何脚本中的任何类型的数字字符。

      【讨论】:

        【解决方案5】:

        在 javadocs 中查找 Pattern 类。

        【讨论】:

        • 是的,我在发布这个问题之前阅读了 Pattern javadoc。列出所有类及其含义的页面的确切链接是什么?
        • 它在我发布的 javadoc 链接中。这是准确的页面,除非我无法理解您的问题。
        • 那个页面上的“CombiningDiacriticalMarks”在哪里? (这是一个反问。它不存在)。我想要每个支持的字符类的完整列表和定义的链接。
        • 版主,请注意:这是我的答案在事实发生多年后被选为否决票的另一个案例。页面上的其他人都没有被否决。我不禁认为这是有针对性的。
        猜你喜欢
        • 2012-03-09
        • 2014-10-14
        • 2017-03-21
        • 2014-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-08
        • 1970-01-01
        相关资源
        最近更新 更多