Wo finde ich Unit-Tests für reguläre Ausdrücke in mehreren Sprachen?

78

Ich baue einen Regex-Helfer unter http://www.debuggex.com . Für die Detailgenauigkeit, die ich anzeigen möchte, muss ich meinen eigenen Parser und Matcher schreiben.

Um sicherzustellen, dass mein Parser und Matcher korrekt funktionieren, habe ich meine eigenen Komponententests für die Javascript-Variante von Regexes geschrieben, aber diese decken nur Randfälle ab, die mir bekannt sind. Ich möchte eine Standard-Testsuite verwenden und wurde kürzlich auf http://hg.ecmascript.org/tests/test262/summary verwiesen , die ich verwenden werde.

Meine Frage ist, wo finde ich solche Testsuiten für andere Regex-Geschmacksrichtungen? Ich möchte in Zukunft andere Geschmacksrichtungen unterstützen. Ich konnte durch Googeln nichts finden ("Test" verschmutzt die Ergebnisse mit Regex-Testern). Ich suche Testsuiten für die Sprachen Python , PHP , Perl , Java , Ruby und .net .

Sergiu Toarca
quelle
12
Cooles Projekt! Für den Anfang hat Python Unit-Tests für sein reModul .
Voithos
2
Gute Arbeit beim Debuggex! Es ist toll!
Mchl
1
Das ist wirklich cool, tolle Arbeit.
Frambot
regexbuddy ist ein schönes Werkzeug!
Stphane
Wäre es möglich, dass Sie die Unit-Tests teilen, die Sie für die JS-Variante von Regex erstellt haben?
Kaustubh Karkare

Antworten:

53

Die meisten dieser Sprachen sind Open Source. Jedes anständige Projekt sollte seine Testfälle in diesem Repo haben, sonst wäre ich ziemlich besorgt.

  • Pythons Regex-Tests
  • Regex-Tests von PHP
  • Perls Regex-Tests sehen sehr umfangreich aus
  • Öffnen Sie die Unit-Tests von JDK (eine Open-Source-Variante von Java).
  • Rubins Regex-Tests
  • Monos Regex-Tests (Open Source-Version von .NET)
  • Regex-Tests von .NET Core
  • RE2 -Tests (bei Google entwickelte C ++ - Regex-Engine)
  • C -Testsuite (entwickelt von AT & T Research)
  • PCRE- Regex-Tests (Perl-kompatible C-Bibliothek für reguläre Ausdrücke)
  • JavaScript- Regex-Tests (Ecma Technical Committee 39-Kompatibilitätssuite)

Ich habe auf dieser Seite auch ein umfangreiches Diagramm gefunden , das Ihnen hilfreich sein könnte.

Jeffery Grajkowski
quelle
1
OpenJDK ist Java, nicht wirklich Geschmack davon. (Das offizielle JDK basiert auf der Entwicklung in OpenJDK, wobei ein Teil des Closed-Source-Codes
hinzugefügt wurde
6
Nicht korrekt, dass .NET Closed Source ist. Die Quellen sind unter referencesource.microsoft.com/netframework.aspx verfügbar . Sie müssen von dort aus graben, um bestimmte Teile zu finden.
Moshe Katz
11

Um eine vollständige Liste auf einer Seite zu haben, habe ich diejenigen gefunden, die in der akzeptierten Antwort weggelassen wurden:

  • Monos Regex-Tests (es ist eine Open-Source-Version von .net)
  • Regex-Tests von PHP
Sergiu Toarca
quelle
6
Mono ist eine Open Source-Version von .Net. Es hat Compiler für C # und F #, NICHT VB.Net. Persönlich ist VB.Net ein Greuel.
aboy021
Die Antwort wurde aktualisiert, um Ihren Kommentar wiederzugeben.
Sergiu Toarca
@SergiuToarca Warum nicht die akzeptierte Antwort bearbeiten und dort hinzufügen, damit wir eine vollständige Liste in einer Antwort haben?
Martin Ender
1
Da das Punktesystem von SO mich stark dazu anregt, meine eigene Antwort hinzuzufügen: P Ich habe die akzeptierte Antwort jedoch bearbeitet.
Sergiu Toarca
1

Zusätzliche Regex-Testsuiten für zusätzliche Sprachen:

Bonus

  • Regfuzz (C-Toolkit zum Testen der Robustheit regulärer Ausdrücke unter Verwendung zufällig generierter und ungültiger regulärer Ausdrücke)
Anon
quelle