在正则表达式世界中,Java使用的是什么味道和风味?
我不是英语母语,所以我不太清楚“味道”的含义可能是它指的是正则表达式语法? 如果有的话有多少正则表达式语法?
BRE ERE Perl等。??
- Flavor指的是正则表达式引擎 – 特定正则表达式引擎支持的语法和附加属性。
-
Pattern
类记录了java regex引擎的属性 - 除了像元字符的含义这样的基本内容之外,正则表达式引擎的不同实现支持不同类型的语法。 例如
- POSIX引擎支持
[:digit:]
表示数字(与[0-9]
相同 - Perl兼容引擎支持
\d
数字快捷方式。 - JavaScript不支持外观
- PHP和其他一些支持看后面,但需要它们固定长度
- 文本编辑器的正则表达式引擎(Notepad ++)通常不支持环顾四周。
- POSIX引擎支持
正则表达式引擎实现的function有多种不同的变体,它采用什么技术“引擎盖下”以及它用于某些function的语法。
regular-expressions.info上有一篇非常好的文章和比较表。
Java regex包实现了一个“Perl-like”正则表达式引擎,但它有一些额外的function,如占有量词( .*+
)和可变长度(但有限)的lookbehind断言)。 另一方面,它错过了Perl的一些function,即条件表达式或注释。 总而言之,它是一个function齐全的实现。
可以在这里找到一个很好的概述: 正则表达式引擎的比较 。
Java使用类似于reg-ex语法的perl
正如你所推测的那样,在这种情况下的“味道”是一种特殊的语法。 有许多; 计算它们只是学术上的努力。
要找到通常使用的那些,请查看grep
接受的表单。
Java可以使用具有Java实现的任何语法。
Regular-expression.info有一个关于风味比较的页面。