80

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

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

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

4

3 回答 3

56

这些语言中的大多数都是开源的。任何体面的项目都应该在所说的 repo 中有他们的测试用例,否则我会非常担心。

  • Python的正则表达式测试
  • PHP的正则表达式测试
  • Perl的正则表达式测试看起来非常广泛
  • 打开 JDK的单元测试(Java 的一种开源风格)
  • Ruby的正则表达式测试
  • Mono的正则表达式测试(.NET 的开源版本)
  • .NET Core的正则表达式测试
  • RE2的测试(Google 开发的 C++ 正则表达式引擎)
  • C测试套件(由 AT&T Research 开发)
  • PCRE正则表达式测试(Perl 兼容正则表达式 C 库)
  • JavaScript正则表达式测试(Ecma Technical Committee 39 兼容性套件)

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

于 2013-04-04T23:30:08.063 回答
11

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

  • Mono 的正则表达式测试(它是 .net 的开源版本)
  • PHP 的正则表达式测试
于 2013-04-05T18:13:28.130 回答
1

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

奖金

  • Regfuzz(用于使用随机生成和无效的正则表达式测试正则表达式稳健性的 C 工具包)
于 2015-10-31T08:37:12.717 回答