Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/05/2008, 23h57   #1
Invité de passage
 
Inscription : septembre 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 9
Points : 1
Points : 1
Par défaut expression alternative selon valeur d'un groupe

Bonjour,

Donc est-il possible d'écrire une expression qui se comporterait différemment selon la valeur d'un groupe ?
par exemple :

ligne 1 : abc bleu
ligne 2 : xyz rouge

si c'est 'bleu' retourne ce qui est compris entre 'a' et 'c', donc 'b'
et si c'est 'rouge' retourne ce quui est compris entre 'x' et 'z', donc 'y'

Là je suis sec :-(
Merci pour votre aide !
origan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2008, 22h13   #2
Membre expérimenté
 
Homme Rémi BOURGAREL
Développeur .NET
Inscription : juin 2006
Messages : 426
Détails du profil
Informations personnelles :
Nom : Homme Rémi BOURGAREL
Âge : 25
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur .NET
Secteur : Tourisme - Loisirs

Informations forums :
Inscription : juin 2006
Messages : 426
Points : 584
Points : 584
j'ai rien mais absolument rien compris :


Citation:
Donc est-il possible d'écrire une expression qui se comporterait différemment selon la valeur d'un groupe ?
d'ou sort ce groupe ???

Citation:
ligne 1 : abc bleu
ligne 2 : xyz rouge

si c'est 'bleu' retourne ce qui est compris entre 'a' et 'c', donc 'b'
et si c'est 'rouge' retourne ce quui est compris entre 'x' et 'z', donc 'y'
ligne 1 ou 2 de quoi ? d'ou sort bleu et rouge ? tu veut retourner la deuxième lettre ?

pour retourner la deuxième lettre c'est plutot du genre ^[a-z]([a-z])[a-z]\s(bleu|rouge)$

mais je suis pas sur que ce soit ce que tu veux.
Bourgui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2008, 14h46   #3
Invité de passage
 
Inscription : septembre 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 9
Points : 1
Points : 1
desole je me suis mal expliqué

je dois importer des adresses dans une base
les adresses sont dans un fichier texte et relativement selon le meme format (n° rue ville pays pour la france)
une regex va bien, mais le pb c'est que selon le pays, l'ordre (n° rue etc) n'est pas le meme. Par contre le pays est toujours en dernier.
J'ai une contrainte : je ne peux pas ecrire une regex par pays (dommage!).
il me reste la solution d'une seule expression qui soit capable de retourner les élements de l'adresse en les recherchant differement selon la pays.

merci pour ton aide.
origan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2008, 15h20   #4
Membre habitué
 
Inscription : septembre 2002
Messages : 140
Détails du profil
Informations forums :
Inscription : septembre 2002
Messages : 140
Points : 118
Points : 118
Bonjour,
Sans aller chercher les expressions régulières, tu n'as rien trouvé avec les fonctions de chaînes, voire de tableaux ? À coupler avec un switch/case/break
Regarde strtok, strpos (avec les espaces à chercher)
http://fr.php.net/manual/fr/ref.strings.php
papa6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2008, 15h32   #5
Membre expérimenté
 
Homme Rémi BOURGAREL
Développeur .NET
Inscription : juin 2006
Messages : 426
Détails du profil
Informations personnelles :
Nom : Homme Rémi BOURGAREL
Âge : 25
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur .NET
Secteur : Tourisme - Loisirs

Informations forums :
Inscription : juin 2006
Messages : 426
Points : 584
Points : 584
je pense effectivement que la ça va etre dur en regexp, je pense que la il faut voir avec des explode et faire ton propre système de template.
Bourgui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2008, 09h21   #6
Invité de passage
 
Inscription : septembre 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 9
Points : 1
Points : 1
Merci pour vos réponses.
Pour alimenter la base je dois utilser un outil qu'on alimente avec des regex.
Donc pas de traitement de chaine de caractères. Enfin, s'il n'y à pas de solution avec les regex... va falloir envisger d'autres solutions :-)
origan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h20.


 
 
 
 
Partenaires

Hébergement Web