Page 1 sur 1

Expression régulières ...

Posté : 10 mars 2009, 17:12
par Adilis
Bonjour à tous,
J'ai beau me debrouiller en php, les expressions régulières restent un mystère pour moi,
J'ai un fichier texte que je sois parser, voici un exemple :
#010550
<Design=Shoes adidas jucuri>
<Description=Shoes adidas jucuri>
#0-1 0884
<Design=Shoes adidas ingia cfi>
<Description=Shoes adidas ingia cfi>
et j'aimerais récuperer les numéros suivant le #, voici mon expression, mais comme vous pouvez le deviner elle plante pour le deuxieme numéro, en fait j'aimerais inclure les caracteres spéciaux comme l'epace, le point et les tirets, la voici :
preg_match_all( '`#([[:alnum:]]+)([^#]*)`si', $contents, $items, PREG_SET_ORDER );
Si quelqu'un a la solution, ^^en vous remerciant

Posté : 10 mars 2009, 17:23
par Victor BRITO
Essaie cette expression régulière :

Code : Tout sélectionner

/^#[-[:space:]0-9]+$/m

Posté : 10 mars 2009, 17:53
par Adilis
Je suis meme pas capable de dire si je l'ai bien ecrit, mais en tout cas, ca ne me renvoie plus rien :
preg_match_all( '/^#[-[:space:]0-9]+$/m', $contents, $items, PREG_SET_ORDER );

Posté : 10 mars 2009, 17:54
par Victor BRITO
Essaie en remplaçant les guillemets simples par des guillemets doubles (j'ignore si ç'a une influence, mais on ne sait jamais...).

Posté : 10 mars 2009, 20:38
par FreakDev
Bonsoir,

avec ce pattern '/#[- .0-9]+/' tout simplement, ça marche

Code : Tout sélectionner

$haystack = <<<EOT #010550 <Design=Shoes adidas jucuri> <Description=Shoes adidas jucuri> #0-1 0884 <Design=Shoes adidas ingia cfi> <Description=Shoes adidas ingia cfi> EOT; $pattern = '/#[- .0-9]+/'; $res = array(); preg_match_all($pattern, $haystack, $res); print_r($res);
le code ci dessus affiche :

Code : Tout sélectionner

Array ( [0] => Array ( [0] => #010550 [1] => #0-1 0884 ) )

Posté : 17 mars 2009, 09:02
par Invité
Ca marche par contre les lettres ne sont plus prises en compte. il faut rajouter le a-Z mais je ne sais pas comment !

Posté : 17 mars 2009, 10:30
par Sékiltoyai
Tout simplement :

Code : Tout sélectionner

[- .0-9A-Za-z]

Posté : 17 mars 2009, 11:00
par blof
Bonjour,
il faut rajouter le a-Z mais je ne sais pas comment !
il y a le manuel : http://fr3.php.net/manual/fr/regexp.reference.php

mais pour tout comprendre ( ou essayer :) ) : http://lumadis.be/regex/tuto_pcre.php