Expression reguliere toute bete - PHP - Programmation
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
Marsh Posté le 21-06-2006 à 10:45:57
cool merci
en regardant une bonne doc, j'ai reussi a m en sortir finalement
et meme a rajouter une nouvelle contrainte
"^(.+)-0([0-9]{9})-([A-Za-z]{2}_[[:alnum:]]*).(.+)"
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).
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 :
list ($var1,$var2,$var3,$var4) = split/explode ($expreg,$texte);
Mon expreg ressemble à ca,mais erm , ca fait l'inverse de ce que je veux faire
"(.*)-0(.*)-(.*).(.*)"
Je fais des reg exp une fois tous les 6 mois et j oublie a chaque fois
thx
Message édité par Darkness Shade le 21-06-2006 à 01:09:18