|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éclairé
![]() Inscription : octobre 2004 Messages : 235 ![]() |
J'ai un soucis avec la portée d'une regexp à choix multiples. Je sais pas si j'utilise les bons termes rien ne vaut un exemple:
preg_match_all("/(.|\n)*MOTIF1[^\\n]*[\\n]*((.|\n)*)(MOTIF3|MOTIF4)(.|\n)*/i", $fiche, $matches); J'ai un texte : MOTIF1 blabla blabal MOTIF2 blabla MOTIF3 blala J'aimerai récupérer la partie entre motif1 et motif2, et si motif2 est absent entre motif1 et motif3. Bref il s'agit de demander à preg_match de matcher l'ensemble le plus petit possible. |
|
|
00
|
|
|
#2 | ||
|
Membre éprouvé
![]() Inscription : février 2007 Messages : 475 ![]() |
Code :
|
||
|
|
00
|
|
|
#3 |
![]() ![]() Développeur Web Inscription : août 2006 Messages : 2 700 ![]() |
Oserais-je émettre l'avis que tant qu'à faire des regex Perl, autant s'habituer avec la vraie syntaxe.
C'est à dire que l'on peut très bien se passer de l'option 'U', qui n'existe pas en Perl, en utilisant le modificateur de quantificateur '?' |
|
|
00
|
|
|
#4 | |
|
Membre éprouvé
![]() Inscription : février 2007 Messages : 475 ![]() |
Citation:
|
|
|
|
00
|
|
|
#5 |
![]() ![]() Développeur Web Inscription : août 2006 Messages : 2 700 ![]() |
Et puisqu'on m'y autorise, j'argumenterai par le fait que l'utilisation des modificateurs de quantification permet plus de flexibilité : une partie du motif peut être "greedy" et une autre "ungreedy". Trop fort !
|
|
|
00
|
|
|
#6 |
|
Membre éclairé
![]() Inscription : octobre 2004 Messages : 235 ![]() |
Merci !
J'ai appris un nouveau truc du coup (greedy/ungreedy). Il y a quand même un truc que je n'ai pas trouvé, c'est la signification de "(?1)" ? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com