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

Where can I find unit tests for regular expressions in multiple languages?

本文关键字:正则表达式 单元测试 语言 在哪里      更新时间:2023-09-26

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

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

我的问题是,我在哪里可以找到其他正则表达式风格的测试套件?我想在未来支持其他口味。我没能通过谷歌找到任何东西("测试"用正则表达式测试器污染了结果)。我在寻找测试套件的语言 python , php , perl , java , ruby ,和 . net

这些语言大多是开源的。任何像样的项目都应该在repo中有他们的测试用例,否则我会很担心的。

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

我还在本页上找到了一个详细的图表,可能对你有所帮助。

为了在一页纸上有一个完整的列表,我找到了被接受的答案中遗漏的那些:

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

针对其他语言的额外正则表达式测试套件:

  • D的标准库正则表达式测试(查找tests.*d文件)
  • Go的正则表达式测试(查找.*test.*go文件)
  • GNU grep的测试(命令行C正则表达式引擎)
  • regex- POSIX -unittest(用Haskell编写的POSIX正则表达式测试套件)
  • ICU的正则表达式测试(C/c++和Java库的Unicode,寻找名为re[_g].*txt的文件)
  • Rust的正则表达式测试
  • TCL的正则表达式测试(查找reg.*test文件)
  • TRE的正则表达式测试(C正则表达式引擎,旨在严格遵守POSIX)
  • V8的正则表达式测试(V8是Chrome的JavaScript引擎,搜索名为.*regexp.*js的文件)
  • WebKit的正则表达式测试(JavaScript测试在script-tests文件夹中)
  • Yarr的正则表达式测试(WebKit的JavaScriptCore的c++正则表达式引擎)

奖金
  • Regfuzz(使用随机生成和无效正则表达式测试正则表达式健壮性的C工具包)