所有正则表达式实现的列表?

时间:2011-01-10 08:22:22

标签: regex programming-languages

网上是否有正则表达式实施列表,显示它们的差异/相似之处?

对于exaple,Emacs elisp Regex与JavaScript或Perl正则表达式不同,更不用说不同编辑器软件使用的所有不同实现,

e.g。 VS2010使用{}而不是()来组合反向引用的表达式。

曾几何时,我可以依赖O'Reilly的Regex Pocket快速参考中的正则表达式转换列表,但在线的内容会更容易,更完整。

顺便说一句,我知道(当然)http://www.regular-expressions.info/哪个好,但没有接近完成。

我将根据此处发布的答案以及我能找到的任何其他内容编制列表。

变体形式

一般变化

实现的差异通常是处理特殊字符{}()[]^$的方式(转义规则等),偶尔也会替换; POSIX字符类的处理/可用性,例如[:digit:],以及选项的使用,例如g i等。

(正在进行的工作,如果你知道任何警告,这些实现的差异,请添加它们作为答案)

  • ActionScript - 使用ECMA样式
  • Delphi(.Net) - 使用.Net风格。 Delphi Win32没有本机正则表达式,但可以使用PCRE包装器。
  • Emacs / ELisp - 有两种不同的上下文,在elisp中使用\\,在\中使用regexp-replace。将特殊字符(){}[]用于正则表达式功能时会对其进行转义,与sed非常相似。
  • Eclipse - 搜索使用Java样式正则表达式。
  • GNU(Linux) - POSIX BRE / ERE
  • Grep - POSIX BRE / ERE
  • Groovy - 使用Java风格。
  • 的IntelliJ
  • Java - Java风格。
  • JavaScript - 使用ECMA样式。
  • 的NetBeans
  • .NET - 使用System.Text.RegularExpressions中的类
  • Notepad ++ - PCRE
  • PCRE(C / C ++) - 开源库,被许多第三方语言和应用程序使用。 (例如PHP,TCL,R等)
  • Perl - Perl风格
  • PHP - POSIX ERE,PCRE,(PHP5的多字节字符串模块使用Oniguruma)
  • POSIX - BRE(基本正则表达式),ERE(扩展正则表达式)
  • PowerShell - .Net style
  • Python - Python风格
  • R - POSIX ERE / BRE,PCRE
  • REALbasic - PCRE
  • Ruby - Oniguruma
  • Sed - 特殊字符(){}[]在将它们用于正则表达式功能时会被转义。
  • Tcl - 三种口味,Tcl ARE(高级正则表达式),POSIX ERE,POSIX BRE。
  • TextMate - Oniguruma
  • Tera Term - Oniguruma
  • VBScript - ECMA
  • Visual Basic 6 - ECMA(使用Microsoft VBScript正则表达式5.5 COM对象时)
  • Visual Studio - 分组大括号为{}(详情请参阅。)
  • wxWidgets - Tcl ARE,POSIX BRE / ERE
  • XML Schema - XML
  • XQuery& XPath - Xpath

其他参考资料。

4 个答案:

答案 0 :(得分:8)

查看Regular Expression Flavor Comparison上的Regular-Expressions.info。它至少包含了当今最重要的正则表达式实现及其特性。

答案 1 :(得分:3)

http://www.regular-expressions.info是我对综合列表最接近的事情(甚至它还远未完成)。 (特别是This page。)

答案 2 :(得分:2)

维基百科上有一个支持正则表达式的库,语言和应用程序列表,其中包含一个功能比较表:

http://en.wikipedia.org/wiki/Comparison_of_regular_expression_engines

答案 3 :(得分:1)

当我对不同的变种感到困惑时,我发现this overview非常有用。