[PHP] Expressions régulières

Fermé
Delta9_THC Messages postés 65 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 26 avril 2009 - 2 mai 2006 à 14:26
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 25 sept. 2007 à 07:39
Re-bonjour,

Je re-pose la question différement, je ne suis pas sûr d'avoir été clair dans mon dernier post :

si j'ai une variable $chaine = "45 AZERTY 78 UIOP 26 GFDTE"

est-il possible, en un seul ereg/eregi de récupérer "45", "AZERTY", "78", "UIOP", "26", "GFDTE" ??
Ou au moins de récupérer "45 AZERTY", "78 UIOP", "26 GFDTE" (je trierai après...)
Le tout en sachant que cette $chaine est formée de 3 séries (2 chiffres, des lettres, 2 chiffres, des lettres, 2 chiffres, des lettres) mais qu'il faudrait aussi que cela fonctionne pour 1 ou 2.

Merci aux courageux ! :o)
A voir également:

5 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
2 mai 2006 à 15:24
Salut,

est-il possible, en un seul ereg/eregi de récupérer "45", "AZERTY", "78", "UIOP", "26", "GFDTE" ??

En ce cas tu n'as pas besoin d'une regex. Tu peux utiliser http://www.expreg.com/pregsplit.php

lami20j
0
Delta9_THC Messages postés 65 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 26 avril 2009 2
2 mai 2006 à 15:31
Ben merci ! Si je cherche pas au bon endroit je risque pas d'y arriver ! :o)

Merci encore
0
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
2 mai 2006 à 15:33
t'as raison j'y avait mêm epas penser, si t'as que des espaces entre ec que tu veux récuperer t'as meme explode() qui fait le compte ...
0
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
2 mai 2006 à 15:30
Salut , je ne suis pas sur à 100 %de la synthaxe mais :
$chaine = "45 AZERTY 78 UIOP 26 GFDTE";
$patterns="/([0-9]{2}) ([^ ]+) [0-9]{2}) ([^ ]+) [0-9]{2}) ([^ ]+) /";
ereg($patterns,$chaine,$id);
print_r($id);

Par contre je me suis servi de l'espace entre les chiffres et les lettres pour délimiter les lettres...
Voilà, ca devrait pas etre trop mauvais...
bonne journée :D
0
Delta9_THC Messages postés 65 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 26 avril 2009 2
2 mai 2006 à 18:38
Ok ok merci à tous !
Je vais essayer avec ces méthodes demain, si jamais ça fonctionne pas je reviendrai ! Et si ça fonctionne....je reviendrai aussi :o)
0
Delta9_THC Messages postés 65 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 26 avril 2009 2
9 mai 2006 à 09:54
Réponse tardive mais néammoins présente :o)

Ca marche nickel ! Bon j'ai un peu de mal à saisir le concept mais j'ai pas eu le temps de m'attarder dessus........je le ferai plus tard !

merci encore !
0
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
9 mai 2006 à 10:13
Pas de soucis... :D
j'avoue que les expressions régulières a première vue c'est imbittable !
Bonne journée ;)
@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
La meilleure solution est d'utiliser la function explode qui sépare des morceaux de chaînes selon un séparateur et les met dans un tableau.

Voici sa syntaxe :

array explode(string separateur, string chaine[, int limite])

Utilise le separateur pour découper la chaine dans un tableau. Si la limite est fournie, le tableau contiendra un nombre limité d'éléments dont le dernier contiendra le reste de la chaine.

Le résultat cherché ici s'obtient comme ceci :

$array= explode(' ', $chaine);

Pas besoin d'expressions régulières dans le cas présent.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
25 sept. 2007 à 07:39
Salut,

déterrer un thread pour donner un réponse qui as été déjà donné en 2006, n'a aucun sens (il faut lire le thread avant ;)
regarde php expressions regulieres#4
0