Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
包java.util.regex支持哪些标准_Java_Regex_Posix_Posix Ere - Fatal编程技术网

包java.util.regex支持哪些标准

包java.util.regex支持哪些标准,java,regex,posix,posix-ere,Java,Regex,Posix,Posix Ere,我想知道java支持哪些正则表达式标准。我所说的标准是指它是否支持IEEE POSIX BRE、ERE和SRE 有人能给我一些建议吗 提前感谢您的回复。来自Oracle的文章包含了有关Java SE 7中支持的正则表达式构造的大量信息,但没有提到支持哪种标准: 与Perl 5的比较 模式引擎执行基于NFA的传统匹配 Perl 5中出现的有序交替 此类不支持Perl构造: 预定义字符类(Unicode字符) \h水平空白 \H非水平空白 \v垂直空白 \V非垂直空格 \R任何Unicode换行

我想知道java支持哪些正则表达式标准。我所说的标准是指它是否支持IEEE POSIX BRE、ERE和SRE

有人能给我一些建议吗

提前感谢您的回复。

来自Oracle的文章包含了有关Java SE 7中支持的正则表达式构造的大量信息,但没有提到支持哪种标准:

与Perl 5的比较

模式引擎执行基于NFA的传统匹配 Perl 5中出现的有序交替

此类不支持Perl构造:

  • 预定义字符类(Unicode字符)
    • \h
      水平空白
    • \H
      非水平空白
    • \v
      垂直空白
    • \V
      非垂直空格
    • \R
      任何Unicode换行符序列
      \u000D\u000A |[\u000A\u000B\u000C\u000D\u0085\u2028\u2029]
    • \X
      匹配Unicode扩展图形集群集
  • 反向引用为第n个捕获组构造
    \g{n}
    ,为命名捕获组构造\g{name}
  • 按名称命名的Unicode字符的命名字符结构,
    \N{name}
  • 条件结构
    (?(条件)X)
    (?(条件)X | Y)
  • 嵌入式代码构造
    (?{code})
    (?{code})
  • 嵌入的注释语法
    (?#comment)
    ,以及
  • 预处理操作包括
    \l
    \u
    \l
    \u
此类支持但Perl不支持的构造:

  • 字符类并集和交集(如上所述)
与Perl的显著区别:

  • 在Perl中,
    \1
    \9
    始终被解释为反向引用;大于9的反斜杠转义数被视为 如果至少存在那么多子表达式,则返回引用,否则返回 如果可能的话,它被解释为八进制逃逸。在这个班 八进制转义必须始终以零开头。在这个类中,
    \1
    通过
    \9
    始终被解释为反向引用,以及更大的 如果至少有这么多,则接受数字作为反向参考 子表达式存在于正则表达式的该点, 否则,解析器将删除数字,直到数字变小或变小 等于现有组数或为一位数

  • Perl使用
    g
    标志请求一个匹配,该匹配将在最后一个匹配结束时继续。此功能由
    Matcher
    class:将继续重复调用find方法 最后一次匹配结束的位置,除非重新设置匹配器

  • 在Perl中,表达式顶层的嵌入标志会影响整个表达式。在这个类中,嵌入的标志总是在 它们出现的点,无论它们是在顶层还是 在一个小组内;在后一种情况下,将在结束时恢复标志 该组与Perl中的相同

声明说语法类似于Perl。因此,无论它使用什么:一个指向潜在解决方案的链接总是受欢迎的,但是请在链接周围添加上下文,以便您的其他用户能够了解它是什么以及它为什么存在。始终引用重要链接中最相关的部分,以防无法访问目标站点或永久脱机。