|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2002 Messages : 49 ![]() |
Bonjour,
j'ai un soucis avec mon expression régulière : sur une valeur telle "How.I.Met.Your.Mother.8x16.FR.CaR.zip" cela me sort => How.I.Met.Your.Mother => 8 => 16 C'est parfait ! Mais probleme avec "How.I.Met.Your.Mother.8x12.8x13.FR.CaR.zip" => How.I.Met.Your.Mother.8x12 => 8 => 13 j'ai donc fait évoluer ma regex : Code :
^(.*)\.s?(\d{1,2})[ex]?(\d{2})\.(?:\d{1}x\d{2}\.)? Un petit lien si vous voulez vous y essayer http://regexr.com?33dt1 Merci |
|
|
00
|
|
|
#2 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2002 Messages : 49 ![]() |
Arf j'ai finalement trouvé une regex qui fonctionne
Code :
^(.*[^s?\d{1,2}(x|e)?\d{2}])\.s?(\d{1,2})[ex]?(\d{2})\.(?:s?(\d{1,2})[ex]?(\d{2})\.)? |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Bastien MontagneDiverses et multiples Inscription : mai 2008 Messages : 620 ![]() |
Désolé, mais cette regex ne fait certainement pas ce que tu veux (pas en python, en tout cas*!). Le contenu des classes de caractères (entre crochets []) a sa propre syntaxe, la syntaxe regex “normale” n’y a pas cours… Autrement dit, "[^s?\d{1,2}(x|e)?\d{2}]" signifie «*tout sauf un s, un ?, un \, un d, un {, etc.*»*!
Ce que tu cherches à faire, c’est un lookahead négatif, mais tu n’en a pas besoin ici, amha un simple opérateur non-glouton devrait suffire*: Code :
"^(.*?)\.s?(\d{1,2})[ex]?(\d{2})\.(?:\d{1}x\d{2}\.)?"
__________________
Incantation : Méchant forum, arrête de transformer toutes mes espaces insécables en astérisques |
|
|
10
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2002 Messages : 49 ![]() |
Tu as complétement raison Bastien !
Comment j'ai pu passé à côté de ça et me compliquer autant la vie ![]() Passé une certaine heure, il vaut mieux reporter au lendemain Merci |
|
|
00
|
|
|
#5 | |
|
Membre Expert
![]() Inscription : mai 2004 Messages : 768 ![]() |
Citation:
Dans ce cas-ci et avec l'exemple donné: de 60% à deux fois plus rapide d'après timeit().
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp :quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT Jabber: ripat at im.apinc.org |
|
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Bastien MontagneDiverses et multiples Inscription : mai 2008 Messages : 620 ![]() |
Certes… mais cette regex est moins universelle, elle bloquera complètement (pas de match) sur "How.I.Met.Your.Mother.At.6PM.8x16.FR.CaR.zip", par exemple. Donc, il n’y a que deux possibilités, amha*: opérateur non-glouton, ou lookahead négatif (ce qui doit, je pense, revenir au même…). Pas testé les performances, mais l’opérateur non-glouton est bien plus simple à écrire (et à comprendre*!).
__________________
Incantation : Méchant forum, arrête de transformer toutes mes espaces insécables en astérisques |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com