Regex match number(s) oder die UUID
Brauche ich regex die lose Spiele UUIDs und zahlen. Ich erwarte, dass meine Dateinamen formatiert werden wie:
results_SOMETHING.csv
Das etwas, was im Idealfall sein sollte-zahlen (zählen, wie viele mal, wenn ein Skript ausgeführt wird) oder eine UUID.
Dieser regex ist, umfasst eine riesige Menge von Dateinamen:
^results_?.*.csv$
und diese:
^results_?[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}.csv$
passt nur zu UUIDs. Ich möchte einen regex, deren Bandbreite irgendwo dazwischen. Meist will ich nicht Spiele wie result__123.csv
.
InformationsquelleAutor user1071840 | 2013-12-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hinweis: Diese nicht direkt beantworten die OP-Frage, aber angesichts der Titel, erscheint es in der Suche.
Hier einen richtigen regulären Ausdruck für eine uuid basiert auf dieses format ohne die hex-Zeichen-Einschränkung:
(\w{8}(-\w{4}){3}-\w{12}?)
Wenn Sie möchten, dass es passen nur hex-Zeichen verwenden:
/([a-f\d]{8}(-[a-f\d]{4}){3}-[a-f\d]{12}?)/i
(Hinweis: die
/
Trennzeichen verwendet Javascript und den/i
flag zu bezeichnen, Fall-Gefühllosigkeit, je auf Ihre Sprache, die Sie möglicherweise schreiben müssen, das anders, aber Sie möchte auf jeden Fall beide behandeln klein-und Großbuchstaben).Wenn Sie vor
results_
und Anhängen.csv
es, dass die würde wie folgt Aussehen:^results_([a-z\d]{8}(-[a-z\d]{4}){3}-[a-z\d]{12}?).csv$
z
ist nicht hex, obwohl.Danke für Eure Hilfe. Das hat Prima funktioniert: "^results((_([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|[a-zA-Z0-9]+))(_[a-zA-Z0-9]+)?)?\\.csv$".
Sie können
\h
für die hex-Zeichen/^\h{8}(-\h{4}){3}-\h{12}$/
Oh schön!!! Ha, ich wusste gar nicht, dass. Je mehr Sie wissen... ?
InformationsquelleAutor brandonscript
-----BEARBEITET /AKTUALISIERT-----
Basierend auf die Kommentare, die Sie verlassen, gibt es auch einige andere Muster, die Sie anpassen möchten (das war mir nicht klar aus der Frage). Dies macht es ein wenig schwieriger zu fassen mein Aktuelles Verständnis:
Finden Sie die folgende Modifikation arbeitet nach dem oben genannten "Spezifikation":
ZERLEGUNG:
demonstration auf regex101.com
^results_?([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|[a-zA-Z0-9]{1,}).csv -$
Das passt nicht Ergebnisse.csv jetzt.
Ausgiebig bearbeitet. Funktioniert es jetzt?
InformationsquelleAutor Floris