在正则表达式世界中,什么是风格,Java使用哪种风格?

2022-09-01 20:34:55

我不是英语母语,所以我不太理解“风味”的含义,可能是它指的是正则表达式语法吗?如果是这样,有多少正则表达式语法?

BRE ERE Perl 等??


答案 1

正则表达式引擎实现的功能,它在“引擎盖下”使用什么技术以及它对某些功能使用的语法有许多不同的变体。

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

Java正则表达式包实现了一个“类似Perl”的正则表达式引擎,但它有一些额外的功能,如所有格量词()和可变长度(但有限)的查看断言)。另一方面,它缺少Perl的一些功能,即条件表达式或注释。总而言之,这是一个非常功能齐全的实现。.*+


答案 2

术语“风格”是指正则表达式引擎 - 特定正则表达式引擎支持的语法和其他属性。

该类记录了 Java 正则表达式引擎的属性。除了元字符的含义等基本内容之外,正则表达式引擎的不同实现还支持不同类型的语法。Pattern

例如:

  • POSIX 引擎支持数字(与[:digit:][0-9]);
  • Perl兼容引擎支持数字的快捷方式;\d
  • JavaScript 不支持 lookbehinds;
  • PHP和其他一些支持外观,但需要它们固定长度;
  • 文本编辑器的正则表达式引擎(记事本 ++)通常不支持查找。