在哪里可以找到多种语言的正则表达式的单元测试?


78

我正在http://www.debuggex.com上构建正则表达式帮助器。我想显示的细节量要求我编写自己的解析器和匹配器。

为了确保解析器和匹配器正常工作,我针对正则表达式的Javascript编写了自己的单元测试,但是这些仅涵盖了我所知道的边缘情况。我想使用一个标准的测试套件,最近指向我将要使用的http://hg.ecmascript.org/tests/test262/summary

我的问题是,在哪里可以找到其他正则表达式口味的测试套件?我希望将来能支持其他口味。我无法通过谷歌搜索找到任何东西(“测试”会用正则表达式测试器污染结果)。我正在寻找针对pythonphpperljavaruby.net语言的测试套件。


12
很棒的项目!对于初学者来说,Python对其re模块进行了单元测试
voithos 2013年

2
在debuggex上做得好!这很棒!
Mchl 2013年

1
那真的很棒,很棒。
Frambot

regexbuddy是一个很好的工具!
Stphane 2013年

您能否分享您提到的为regex的JS风格创建的单元测试?
Kaustubh Karkare 2013年

Answers:


53

这些语言大多数都是开源的。任何体面的项目都应在回购中包含其测试用例,否则我会非常担心。

  • Python的regex测试
  • PHP的正则表达式测试
  • Perl的regex测试看起来真的很广泛
  • Open JDK的单元测试(Java的一种开放源代码)
  • Ruby的正则表达式测试
  • Mono的正则表达式测试(.NET的开源版本)
  • .NET Core的正则表达式测试
  • RE2的测试(由Google开发的C ++ regex引擎)
  • C测试套件(由AT&T Research开发)
  • PCRE正则表达式测试(Perl兼容的正则表达式C库)
  • JavaScript regex测试(Ecma技术委员会39兼容性套件)

我还在此页面上找到了详细的图表,可能会对您有所帮助。


1
OpenJDKJava,不是真正的风味。(官方的JDK基于OpenJDK的开发,并添加了一些封闭源代码,因此构建可能不是100%兼容的,但是两者的regex引擎应该相同。)
millimoose 2013年

6
.NET是封闭源不正确。这些资源可从referencesource.microsoft.com/netframework.aspx获得。但是,您必须从那里进行挖掘以找到特定的部分。
Moshe Katz

11

为了在一页上有完整的列表,我发现了被接受的答案中省略的那些:

  • Mono的正则表达式测试(这是.net的开源版本)
  • PHP的正则表达式测试

6
Mono是.Net的开源版本。它具有C#和F#的编译器,而不是VB.Net。就个人而言,VB.Net是可憎的。
aboy021

更新了答案以反映您的评论。
Sergiu Toarca 2013年

@SergiuToarca为什么不编辑接受的答案并将其添加到那里,因此我们将在一个答案中列出完整的列表?
Martin Ender

1
因为SO的分数系统极大地激励了我添加自己的答案:P但是,我已经编辑了接受的答案。
Sergiu Toarca 2013年

1

其他语言的其他正则表达式测试套件:

奖金

  • Regfuzz(使用随机生成的无效正则表达式测试正则表达式鲁棒性的C工具包)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.