[PHP] Expressions régulières

Delta9_THC Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   -  
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
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   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
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   Statut Membre Dernière intervention   2
 
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   Statut Membre Dernière intervention   200
 
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   Statut Membre Dernière intervention   200
 
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   Statut Membre Dernière intervention   2
 
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   Statut Membre Dernière intervention   2
 
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   Statut Membre Dernière intervention   200
 
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
Farfadh
 
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   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
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