extraire une sous chaine d'une chaine
8 messages
• Page 1 sur 1
- dudo
- WRInaute occasionnel

- Messages: 456
- Inscription: 10 Jan 2004
extraire une sous chaine d'une chaine
Bonjour,
airportCode: NRT; city: Tokyo; country: JP; currency: EUR;
Quelqu'un autait'il une idée pour extraire 2 informations d'une chaine.
le nom d'une ville et d'un pays, j'ai pensé fair un explode a partir du ;
Mais ces noms peuvent se situer en début comme en fin de chaine.
En revanche les caractéristiques sont toujours les mêmes, donc le nom de la ville
est toujours compris entre (city:) Tokyo et (;) de même pour le pays, évidemment
ces noms changent en permanence.
city: Tokyo;
country: JP;
enfin tout ceci est noyé au milieu d'autres infos, vu plus haut:
airportCode: NRT; city: Tokyo; country: JP; currency: EUR;
merci
ludo
airportCode: NRT; city: Tokyo; country: JP; currency: EUR;
Quelqu'un autait'il une idée pour extraire 2 informations d'une chaine.
le nom d'une ville et d'un pays, j'ai pensé fair un explode a partir du ;
Mais ces noms peuvent se situer en début comme en fin de chaine.
En revanche les caractéristiques sont toujours les mêmes, donc le nom de la ville
est toujours compris entre (city:) Tokyo et (;) de même pour le pays, évidemment
ces noms changent en permanence.
city: Tokyo;
country: JP;
enfin tout ceci est noyé au milieu d'autres infos, vu plus haut:
airportCode: NRT; city: Tokyo; country: JP; currency: EUR;
merci
ludo
- jcaron
- WRInaute accro

- Messages: 2685
- Inscription: 13 Fév 2004
Re: extraire une sous chaine d'une chaine
Avec des regex comme '/city: ([^;]+);/' et '/country: ([A-Z]{2});/'
Sinon tu peux faire explode sur ; puis pour chaque explode sur : et soit mettre tout dans un tableau associatif (si tu as besoin de tout) soit juste prendre ce qui t'intéresse.
Il doit y avoir un paquet d'autres méthodes.
Jacques.
PS: on va supposer que ton fichier ne dit pas qu'on utilise l'euro au Japon
Sinon tu peux faire explode sur ; puis pour chaque explode sur : et soit mettre tout dans un tableau associatif (si tu as besoin de tout) soit juste prendre ce qui t'intéresse.
Il doit y avoir un paquet d'autres méthodes.
Jacques.
PS: on va supposer que ton fichier ne dit pas qu'on utilise l'euro au Japon
- dudo
- WRInaute occasionnel

- Messages: 456
- Inscription: 10 Jan 2004
Re: extraire une sous chaine d'une chaine
jcaron a écrit:Avec des regex comme '/city: ([^;]+);/' et '/country: ([A-Z]{2});/'
Sinon tu peux faire explode sur ; puis pour chaque explode sur : et soit mettre tout dans un tableau associatif (si tu as besoin de tout) soit juste prendre ce qui t'intéresse.
Il doit y avoir un paquet d'autres méthodes.
Jacques.
PS: on va supposer que ton fichier ne dit pas qu'on utilise l'euro au Japon
Bonjour,
merci jcaron pour tes soluces, pour l'euro c'etait pour l'exemple, je n'utilise jamais
les regex et donc je ne manipule pas du tout les expressions regulieres,
mais peux tu me dire dans ce cas précis quel type d'expression
il faut utiliser que je regarde ça, car cela me parait le plus simple ici.
merci
ludo
- dudo
- WRInaute occasionnel

- Messages: 456
- Inscription: 10 Jan 2004
Re: extraire une sous chaine d'une chaine
jcaron a écrit:Ben celles que je donnais
Jacques.
Comme je disais, je n'utilise jamais, donc je fais quoi
avec
'/city: ([^;]+);/'
et '/country: ([A-Z]{2});/'
Je capture, je remplace, je recherche ?
preg_replace, il ya des dizaines d'expressions
quelque chose dans ce genre ?
$isolenom=eregi('/city: ([^;]+);/',$variable,$regs);
ludo merci
- jcaron
- WRInaute accro

- Messages: 2685
- Inscription: 13 Fév 2004
Re: extraire une sous chaine d'une chaine
Il faut que tu utilises preg_match ou preg_match_all suivant les cas. Ca doit le faire aussi avec eregi, mais je te conseille de prendre l'habitude d'utiliser les preg_*, c'est nettement mieux.
Jacques.
Jacques.
-

medium69 - WRInaute passionné

- Messages: 2485
- Inscription: 7 Mai 2005
Re: extraire une sous chaine d'une chaine
Avec Preg_match :
- Code: Tout sélectionner
$value = 'airportCode: NRT; city: Tokyo; country: JP; currency: EUR;';
preg_match('#city: (.*); country: (.*);#U', $value, $result);
//$result[1] est la ville et $result[2] est le pays
8 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Extraire chaine et comparer
- Extraire une chaine de caractères
- extraire variable indépendant dans chaine de caractere
- Extraire une chaine d'un fichier (eregi)
- Extraire un code postal dans une chaine
- [RESOLU ]extraire un chaine de carcatére a partir d'un url
- extraire une sous chaine à gauche d'un point
- Expression régulière pour extraire une chaine entre 2 tags
- [script] Extraire d'une chaîne les mots commençant par une majuscule
- [php] enlever une partie de chaine d'une chaine complete
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

