我想知道java支持哪些标准的正则表达式。我所说的标准是指它是否支持IEEE POSIX BRE、ERE和SRE。
有没有人能说出。
提前感谢您的回复。
发布于 2013-05-24 23:56:44
来自Oracle的This document包含了关于JavaSE7中支持的正则表达式构造的大量信息,尽管它没有提到支持哪种标准:
与Perl 5的比较
模式引擎使用有序交替执行传统的基于NFA的匹配,就像在Perl5中发生的那样。
此类不支持的Perl构造:
Unicode预定义字符类(Unicode字符)
\h A水平字符A非水平字符A垂直字符A非垂直whitespace\R任何Unicode换行符序列\u000D\u000A|[\u000A\u000B\u000C\u000D\u0085\u2028\u2029]\X cluster
\g{n}表示the捕获组,\g{name}表示命名捕获组。\N{name}按名称表示Unicode字符。(?(condition)X)和<代码>D39、<代码>H240<代码>H141嵌入式代码构造<代码>D42和<代码>D43、<代码>H244<代码><代码>H145嵌入式注释语法<代码>D46和<代码>H247<代码>H148预处理操作<代码>D49、<代码>D51和\U.此类支持但Perl不支持的构造:
above.中描述的
与Perl的显著区别是:
\1到\9始终被解释为后向引用;如果至少有那么多的子表达式存在,则大于9的反斜杠转义数字被视为后向引用,否则,如果可能,它将被解释为八进制转义。在这个类中,八进制转义必须始终以零开始。在这个类中,\1到\9始终被解释为反向引用,如果在正则表达式中的该点至少存在许多子表达式,则接受一个更大的数字作为反向引用,否则解析器将删除数字,直到该数字小于或等于现有的组数,或者它是一个数字。g标志来请求一个匹配,该匹配从上一个匹配中断的位置继续。此功能由Matcher类隐式提供:除非重置匹配器,否则重复调用find方法将从上次停止的位置继续。中一样。
https://stackoverflow.com/questions/16738955
复制相似问题