Expression régulière pour rechercher le numéro de(s) ou l'UUID
J'ai besoin de regex qui lâche les matchs Uuid et de chiffres. J'attends mon nom de fichier pour être formatés comme:
results_SOMETHING.csv
Ce quelque chose, idéalement, devrait être des nombres (le compte de combien de temps l'exécution d'un script) ou un UUID.
Cette regex est englobe un vaste ensemble de noms de fichiers:
^results_?.*.csv$
et celui-ci:
^results_?[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}.csv$
ne correspond qu'à des Uuid. Je veux une regex dont la portée est quelque part entre les deux. Surtout, je ne veux pas les matchs comme result__123.csv
.
OriginalL'auteur user1071840 | 2013-12-12
Vous devez vous connecter pour publier un commentaire.
Remarque: Ce n'est pas directement répondre à l'OP question, mais vu le titre, il apparaîtra dans les recherches.
Voici une bonne regex pour correspondre à un uuid fondé sur ce format sans l'hex caractère de contrainte:
(\w{8}(-\w{4}){3}-\w{12}?)
Si vous souhaitez associer uniquement des caractères hexadécimaux, utilisation:
/([a-f\d]{8}(-[a-f\d]{4}){3}-[a-f\d]{12}?)/i
(Note de l'
/
délimiteurs utilisés dans le Javascript et le/i
drapeau pour désigner l'insensibilité à la casse; en fonction de votre langue, vous pouvez avoir besoin d'écrire de façon différente, mais vous voulez certainement gérer à la fois les lettres minuscules et majuscules).Si vous êtes ajoutant
results_
et en ajoutant.csv
, qui pourrait ressembler à:^results_([a-z\d]{8}(-[a-z\d]{4}){3}-[a-z\d]{12}?).csv$
z
n'est pas hex.Je vous remercie pour votre aide. Cela a très bien fonctionné: "^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$".
Vous pouvez utiliser
\h
caractères hex/^\h{8}(-\h{4}){3}-\h{12}$/
Oh joli!!! Ha je ne savais même pas que. Le plus vous savez...
OriginalL'auteur brandonscript
-----MODIFIÉ /MIS À JOUR-----
Basé sur les commentaires que vous avez laissé, il y a d'autres modèles que vous voulez de match (ce n'était pas clair pour moi à partir de la question). De ce fait, il est un peu plus difficile à résumer ma compréhension actuelle:
Vous trouverez la modification suivante fonctionne d'après le "cahier des charges":
Décomposant:
démonstration sur 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$
Ce n'est pas le résultat d'un match.csv maintenant.
Fortement remanié. Ça fonctionne maintenant?
OriginalL'auteur Floris