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 13/08/2008, 12h47   #1
Futur Membre du Club
 
Inscription : octobre 2004
Messages : 52
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 52
Points : 17
Points : 17
Par défaut Récupérer le contenu d'une chaine entre deux séparateurs

Bonjour,

j'ai un souci avec les regex et je ne m'en sort pas...
J'aimerai récupérer dans cette chaine :
Code :
( DESTINATION IN ('COUR','COM','QUAL') OR TYPE_ID IN ('46','30','147','123') ) or ( DESTINATION IN ('INF') OR TYPE_ID IN ('21','60') ) or ( DESTINATION IN ('INF','MARK') )
tout ce qui est entre "DESTINATION IN" et une parathèse fermante ")".

j'ai essayé ça :

Code :
1
2
3
$user_where_clause = ( DESTINATION IN ('COUR','COM','QUAL') OR TYPE_ID IN ('46','30','147','123') ) or ( DESTINATION IN ('INF') OR TYPE_ID IN ('21','60') ) or ( DESTINATION IN ('INF','MARK') );
$pattern = "#DESTINATION IN (.*\))#";
preg_match_all($pattern,$user_where_clause,$out);
mais ça ne me renvoie qu'une seule occurrence trouvée alors qu'il y en a 3...
Tableau retourné :
Code X :
1
2
3
4
5
6
7
8
9
10
11
12
13
Array
(
    [0] => Array
        (
            [0] => DESTINATION IN ('COUR','COM','QUAL') OR  TYPE_ID IN ('46','30','147','123') ) or ( DESTINATION IN ('INF') OR  TYPE_ID IN ('21','60') ) or ( DESTINATION IN ('INF
        )

    [1] => Array
        (
            [0] => ('COUR','COM','QUAL') OR  TYPE_ID IN ('46','30','147','123') ) or ( DESTINATION IN ('INF') OR  TYPE_ID IN ('21','60') ) or ( DESTINATION IN ('INF
        )

)

Merci de me filer un coup de main
soulryo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2008, 14h12   #2
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
Par défaut, le caractère * est gourmand, donc pour le rendre non gourmand il faut utiliser le modificateur U :

Code :
$pattern = "#DESTINATION IN \((.*)\)#U";
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2008, 14h17   #3
Futur Membre du Club
 
Inscription : octobre 2004
Messages : 52
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 52
Points : 17
Points : 17
Merci ça fonctionne nikel, le modificateur U change tout en effet!
soulryo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h06.


 
 
 
 
Partenaires

Hébergement Web