Ich bin auf der Suche nach einer Möglichkeit, alle möglichen Muster aus einer endlichen Regex (ohne Duplikate) aufzulisten. Ist eine Quelle verfügbar?
Antworten
Zu viele Anzeigen?Allerdings werden einige fortgeschrittene Funktionen nicht abgedeckt, und es gibt auch einige andere Vorbehalte, Regexp::Genex scheint dem, wonach Sie suchen, sehr nahe zu kommen.
Außerdem gibt es dieser Thread von PerlMonks die relevant genug ist (und auch erklärt, warum Regexp::Genex möglicherweise nicht für Sie geeignet ist, sowie einige Alternativen zum Selbermachen).
Andernfalls, wie bei Jeffrey Friedl's Reguläre Ausdrücke beherrschen können Sie den Modifikator /g in Verbindung mit der Erweiterung (?{CODE}) und einem Muster, das niemals übereinstimmen wird , ala:
perl -E '$_ = 'Mastering Regular Expressions'; /(\p{L}*)(?{ say qq![$^N]! })(?!)/g;'
Ein Haskell-Programm, das auf Perl's Regexp::Genex
kann gefunden werden auf Github y auf Hackage .
Nach Angaben des Autors Es wurde von Regexp::Genex inspiriert, "verwendet aber einen Zufallsansatz für Zeichenklassen, anstatt alle Möglichkeiten aufzuzählen."