在正则表达式世界中,Java使用的是什么味道和风味?

我不是英语母语,所以我不太清楚“味道”的含义可能是它指的是正则表达式语法? 如果有的话有多少正则表达式语法?

BRE ERE Perl等。??

  • Flavor指的是正则表达式引擎 – 特定正则表达式引擎支持的语法和附加属性。
  • Pattern类记录了java regex引擎的属性
  • 除了像元字符的含义这样的基本内容之外,正则表达式引擎的不同实现支持不同类型的语法。 例如
    • POSIX引擎支持[:digit:]表示数字(与[0-9]相同
    • Perl兼容引擎支持\d数字快捷方式。
    • JavaScript不支持外观
    • PHP和其他一些支持看后面,但需要它们固定长度
    • 文本编辑器的正则表达式引擎(Notepad ++)通常不支持环顾四周。

正则表达式引擎实现的function有多种不同的变体,它采用什么技术“引擎盖下”以及它用于某些function的语法。

regular-expressions.info上有一篇非常好的文章和比较表。

Java regex包实现了一个“Perl-like”正则表达式引擎,但它有一些额外的function,如占有量词( .*+ )和可变长度(但有限)的lookbehind断言)。 另一方面,它错过了Perl的一些function,即条件表达式或注释。 总而言之,它是一个function齐全的实现。

可以在这里找到一个很好的概述: 正则表达式引擎的比较 。

Java使用类似于reg-ex语法的perl

正如你所推测的那样,在这种情况下的“味道”是一种特殊的语法。 有许多; 计算它们只是学术上的努力。

要找到通常使用的那些,请查看grep接受的表单。

Java可以使用具有Java实现的任何语法。

Regular-expression.info有一个关于风味比较的页面。