Expression reguliere toute bete

Expression reguliere toute bete - PHP - Programmation

Marsh Posté le 21-06-2006 à 00:38:24    

Hello,
 
Voici le type de la chaine à decouper en 4 sous-chaines:  
 
chaine1-0chiffresX9-chaine2.ext
 
chaine1    : une suite de caractere *
separateur -0
chiffresX9 : 9 chiffres
seprateur -
chaine2    : une suite de caractere *
separateur .
ext
 
J'ai prevu de les recuperer comme ca :
 

Citation :

list ($var1,$var2,$var3,$var4) = split/explode ($expreg,$texte);


 
Mon expreg ressemble à ca,mais erm  :heink: , ca fait l'inverse de ce que je veux faire   :sweat:  
 
"(.*)-0(.*)-(.*).(.*)"
 
Je fais des reg exp une fois tous les 6 mois et j oublie a chaque fois  :o  
 
thx


Message édité par Darkness Shade le 21-06-2006 à 01:09:18
Reply

Marsh Posté le 21-06-2006 à 00:38:24   

Reply

Marsh Posté le 21-06-2006 à 10:03:29    

preg_match('#^(\w+)-0([0-9]{9})-(\w+)\.(\w+)$#' , 'chaine1-0chiffresX9-chaine2.ext' , $out);
 
$out[1] -> chaine1
$out[2] -> chiffresX9
$out[3] -> chaine2
$out[4] -> ext


Message édité par afbilou le 21-06-2006 à 10:53:20
Reply

Marsh Posté le 21-06-2006 à 10:45:57    

cool merci :D
 
en regardant une bonne doc, j'ai reussi a m en sortir finalement :D
et meme a rajouter une nouvelle contrainte  
 
"^(.+)-0([0-9]{9})-([A-Za-z]{2}_[[:alnum:]]*).(.+)"
 

Reply

Marsh Posté le 21-06-2006 à 10:51:58    

oui mais c'est faux.
 
ton "." ne désigne pas un "." mais un caractere jocker ! il faut saisir "\." pour désigner un "."
 
ton masque ne prend pas en compte les caracteres accentués.
 
tu utilises des expressions regulieres POSIX (ereg) : elles sont plus lentes que les expressions regulieres PCRE (preg).


Message édité par afbilou le 21-06-2006 à 10:56:05
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed