[PHP] Prise de tête avec les expressions régulières

Prise de tête avec les expressions régulières [PHP] - PHP - Programmation

Marsh Posté le 27-01-2004 à 11:48:10    

Oui, on va encore se moquer de moi, mais ca fait 1/2 heure que je me prends la tête avec une pauvre expression régulière toute conne et j'y arrive pas
 
J'ai une chaine xxxx%aa%xxxxxx%bb%xxxxxxxxxxx%cc%xxxxxx
et je voudrais récupérer les %aa%, %bb% et %cc% dans un tableau
 
donc j'ai fais un vieux  
 
preg_match("/(%*%)/", $value, $pp);
 
mais forcément, ca marche pas :D
Faut que je mette quoi à la place de "/(%*%)/" ??

Reply

Marsh Posté le 27-01-2004 à 11:48:10   

Reply

Marsh Posté le 27-01-2004 à 12:33:36    

spark a écrit :

Oui, on va encore se moquer de moi, mais ca fait 1/2 heure que je me prends la tête avec une pauvre expression régulière toute conne et j'y arrive pas
 
J'ai une chaine xxxx%aa%xxxxxx%bb%xxxxxxxxxxx%cc%xxxxxx
et je voudrais récupérer les %aa%, %bb% et %cc% dans un tableau
 
donc j'ai fais un vieux  
 
preg_match("/(%*%)/", $value, $pp);
 
mais forcément, ca marche pas :D
Faut que je mette quoi à la place de "/(%*%)/" ??


 
sinon pourquoi tu utilise pas des fonctions de chianes de caractères qui te coupe la cahine jusuq'a un delimiteur  , tu le defini etant %  
je sais pas si c pas des trucs strtok etc.. enfin des machins dans ce genre

Reply

Marsh Posté le 27-01-2004 à 14:11:07    

la solution pour ceux que ca intéresse :
 
preg_match_all("/%[^%]*%/", $value, $pp);

Reply

Marsh Posté le 27-01-2004 à 14:12:40    

avec un '+' au lieu de '*' c'est même mieux :D

Reply

Marsh Posté le 27-01-2004 à 20:55:50    

Tu peux aussi ne pas utiliser les expressions régulières :
 
Tu découpes ta chaîne grâce à explode (% est le séparateur) et ensuite tu lis un élément sur 2 du tableau retourné en commençant par le 2ème élément.
Par exemple :
xxx%abd%yyy%fgh%t
explode retourne le tableau
'xxx', 'abd', 'yyy', 'fgh', 't'
tu lis un élément sur 2 ce qui donne :
'abd', 'fgh'
Hop =)
 
Edit: tout ça pour dire que ce sera peut-être plus rapide qu'une expression régulière (je pense)


Message édité par Tentacle le 27-01-2004 à 20:56:25
Reply

Sujets relatifs:

Leave a Replay

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