Schreiben Sie einen nicht trivialen regulären Ausdruck, der mit sich selbst übereinstimmt.
Entspricht beispielsweise #.*$
einem Kommentar außerhalb eines Strings in Python bis zum Zeilenende und entspricht sich auch in der regulären Perl-Syntax.
Regeln :
- Der reguläre Ausdruck muss etwas Nützliches oder Praktisches tun.
- Geben Sie an, welche Regex-Syntax Sie verwenden (z. B. Perl oder POSIX).
- Gewinner ist die Antwort mit der höchsten Bewertung.
- Seien Sie kreativ!
popularity-contest
regular-expression
Casey Kuball
quelle
quelle
A
wäre trivial, aber wo ziehst du die Grenze? Und mit "Self-Matching" meinen Sie, dass es nur sich selbst entsprechen kann, oder darf es auch anderen Zeichenfolgen entsprechen? Würde sich.
qualifizieren?Antworten:
Von https://github.com/LeaVerou/prism/blob/gh-pages/components/prism-javascript.js gestohlen . Dies sollte (in JavaScript) mit allen regulären Ausdrücken von JavaScript übereinstimmen.
quelle
PYTHON
Unten sehen Sie einen selbstanpassenden Regex-Generator. Sie stellen zwei Listen zur Verfügung, eine enthält Trainingsdaten, mit denen der Regex übereinstimmen soll (zusätzlich zu der eigenen), die andere enthält Trainingsdaten, mit denen der Regex NICHT übereinstimmen soll:
quelle
simulate
Funktion ist Teil der Verwendung? Ihresimulate
Funktion verwendet Argument 2 nicht.no_match
soll umbenannt werdenno_match_list
. Bearbeitetpopulation = generate_pop(pos_matches, neg_matches, pop_size)
, aber diegenerate_pop
Funktion verwendet denneg_matches
Parameter nie ? Können Sie auch ein Beispiel für den Aufruf der Funktion beifügen? Könnte ich es so nennensimulate(["Hello","World","world"], ["woah","bad","dont match"])
?simulate()
Funktion wie beschrieben aufrufen . Und ja, Sie haben Recht: Ich verwende die negativen Daten nicht zur Generierung der ursprünglichen Grundgesamtheit.Regulärer JavaScript-Ausdruck, der ähnlichen Elementen entspricht.
Sie können es so testen:
quelle