简体   繁体   中英

In the regex world what's a flavor and which flavor does Java use?

I'm not a native English and so I don't understand well the meaning of 'flavor' may be is it referred to a regex syntax?? and if so how many regex syntax are there?

BRE ERE Perl etc.??

There are many different variations of what features a regex engine implements, what technique it uses "under the hood" and what syntax it uses for certain features.

There is a very good article and comparison table at regular-expressions.info .

The Java regex package implements a "Perl-like" regular expressions engine, but it has some extra features like possessive quantifiers ( .*+ ) and variable-length (but finite) lookbehind assertions). On the other hand, it misses a few features Perl has, namely conditional expressions or comments. All in all, it's a very full-featured implementation.

The term "flavor" refers to the regex engine – the syntax and additional properties supported by the particular regex engine.

The Pattern class documents the properties of the Java regex engine . Aside from the basic things like the meaning of metacharacters, different implementations of regex engines support different types of syntaxes.

For example:

  • POSIX engines support [:digit:] for digits (same as [0-9] );
  • Perl compatible engines support \\d shortcut for digits;
  • JavaScript doesn't support lookbehinds;
  • PHP and some others support lookbehinds, but needs them to be fixed length;
  • Regex engines of text editors (Notepad++) generally don't support lookarounds.

Java使用Perl之类的reg-ex语法

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

A "flavor" in this context is a particular syntax, as you have surmised. There are many; counting them would be only an academic endeavor.

To find the ones that are generally used, look at the forms accepted by grep .

Java may use whatever syntax has a Java implementation.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM