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

时间:2010-07-12 06:30:21

标签: java regex

5 个答案:

答案 0 :(得分:11)

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

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

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

答案 1 :(得分:6)

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

答案 2 :(得分:3)

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

答案 3 :(得分:2)

可在此处找到一个很好的概述:Comparison of Regular Expression Engines

答案 4 :(得分:1)

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

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

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