Expression régulière pour rechercher une date comme le nom du mois jour de la virgule et de l'année
Je voudrais savoir comment faire correspondre un jour comme celui-ci "Oct 21, 2014" ou "le 21 octobre 2014"
Ce que j'ai fait jusqu'à présent est \b(?:Jan?|?:Feb?|?:Mar?|?:Apr?|?:May?|?:Jun?|?:Jul?|?:Aug?|?:Sep?|?:Oct?|?:Nov?|?:Dec?) [0-9]{1,2}[,] (?:19[7-9]\d|2\d{3})(?=\D|$)
mais qui n'est pas moi n'importe où
- Sur bref j'ai besoin de ma chaîne correspondante: "Mois[espace]Jour[virgule][espace]Année"
et je ne se soucient pas des années bissextiles et les jours de mois devrait être entre 1 et 31 avec aucun 0 - J'ai besoin de cette regex pour travailler sur python
Pouvez-vous ajouter tous les apports possibles des chaînes, à la fois valides et non valides
Aussi, vous devez ajouter le code complet pas
Je parie que vous avez oublié: 1) regex séparateurs, 2) double les barres obliques inverses, 3) l'essai à regex101.com. Quelle langue est-il écrit? Qu'est-ce que la regex saveur?
Je suppose, qui répond à la question.
En fait j'ai seulement besoin de mois abréviations comme "Oct 21, 2014" et tout n'est pas dans ce format "Mois[espace]Jour[virgule][espace]Année"devrait être invalide. Je ne se soucie pas des années bissextiles et les jours pourrait être n'importe quoi allant de 1 à 31. Noter que les jours ne sont qu'à 1 et pas 01. @ Wiktor je suis à l'aide de python pour cette regex et essayé regex101 avec pas de chance. C'est la complète expression régulière: \b(?:Jan?|?:Feb?|?:Mar?|?:Apr?|?:Peut -?|?:Jun?|?:Jul?|?:Août?|?:Sep?|?:Oct?|?:Nov?|?:Dec?) [0-9]{1,2}[,] (?:19[7-9]\d|2\d{3})(?=\D|$)
Aussi, vous devez ajouter le code complet pas
...
Je parie que vous avez oublié: 1) regex séparateurs, 2) double les barres obliques inverses, 3) l'essai à regex101.com. Quelle langue est-il écrit? Qu'est-ce que la regex saveur?
Je suppose, qui répond à la question.
En fait j'ai seulement besoin de mois abréviations comme "Oct 21, 2014" et tout n'est pas dans ce format "Mois[espace]Jour[virgule][espace]Année"devrait être invalide. Je ne se soucie pas des années bissextiles et les jours pourrait être n'importe quoi allant de 1 à 31. Noter que les jours ne sont qu'à 1 et pas 01. @ Wiktor je suis à l'aide de python pour cette regex et essayé regex101 avec pas de chance. C'est la complète expression régulière: \b(?:Jan?|?:Feb?|?:Mar?|?:Apr?|?:Peut -?|?:Jun?|?:Jul?|?:Août?|?:Sep?|?:Oct?|?:Nov?|?:Dec?) [0-9]{1,2}[,] (?:19[7-9]\d|2\d{3})(?=\D|$)
OriginalL'auteur faceoff | 2016-02-15
Vous devez vous connecter pour publier un commentaire.
Ce peut suffire à vos besoins.
Gardez cependant à l'esprit que vous aurez besoin de plus sophistiqué des validations, comme pour la validation du nombre de jours d'un mois donné (disons, février peut avoir jusqu'à 28 jours seulement (29 bissext ans), et ainsi de suite)
Jouer avec elle ici.
Encore une fois, c'est vraiment un très simple regex et vous devez avoir beaucoup de meilleures solutions, mais peut-être cela peut être suffisant pour vos besoins, je ne sais pas.
Les solutions de rechange qui partagent le même préfixe de ralentir l'exécution de code avec cette regex. Si la chaîne d'entrée est court, c'est ok, si elle est longue, il pourrait être un problème. C'est une bonne idée de contrat, il le chemin de l'OP.
Oui Wiktor, ce n'est certainement pas en terme de performance. De nouveau, je voulais juste laisser l'OP avec quelque chose. Ne pas comprendre ce que vous entendez par "bonne idée de contrat de la façon que l'OP a".
Au lieu de
Jan|January
utilisationJan(?:uary)?
.Oh, à droite. Merci pour cette remarque. Mis à jour.
OriginalL'auteur Veverke