Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1509 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  regex qui ne marche pas

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

regex qui ne marche pas

n°1513025
hugoOo
laisse pas dépasser ton pixel
Posté le 10-02-2007 à 17:10:17  profilanswer
 

Bonjour,
 
J'ai une regex qui ne marche pas car je voudrai récupérer uniquement le premier mot alors qu'elle m'en récupère plusieurs, voici un exemple :
 

Citation :


$source = '<td><span class="Aria14_black"><b>Mercedes Classe C 220</b> CDI Elegance</span></td>';
preg_match('#<td><span[^>]+><b>(.+) (.+)</b>#', $source, $infos);
echo 'source: '.$source.'<br />';
echo 'Marque : '.$infos[1].'<br />';
echo 'Modèle : '.$infos[2].'<br />';
 


 
et voilà ce que j'obtient :

Citation :


source: Mercedes Classe C 220 CDI Elegance
Marque : Mercedes Classe C
Modèle : 220


 
 
alors que je voudrai obtenir:
source  : Mercedes
modèle : Classe C 220
 
Quelqu'un a t'il la solution ?
 
 :hello:

mood
Publicité
Posté le 10-02-2007 à 17:10:17  profilanswer
 

n°1513038
sielfried
Posté le 10-02-2007 à 18:08:09  profilanswer
 
n°1513334
hugoOo
laisse pas dépasser ton pixel
Posté le 11-02-2007 à 18:58:09  profilanswer
 

Merci pour la solution. A quoi correspond le ? dans les deuxiemes paranthèses ?
Et si je veut que les premières paranthèses captures les deux premiers mots, comme,t dois-je m'y prendre ?

n°1513377
sielfried
Posté le 11-02-2007 à 21:25:03  profilanswer
 

hugoOo a écrit :

Merci pour la solution. A quoi correspond le ? dans les deuxiemes paranthèses ?


 
Ça passe le "+" en mode "paresseux" (marche sur un "*" aussi). Typiquement, sur un truc du style :
FOOaaaaaaBARaaaaaaBARblablabla  
 
FOO(a*?)BAR capturera FOOaaaaaaBAR (il est "paresseux", il s'arrête au premier "BAR" trouvé), alors que  
FOO(a*)BAR capturera FOOaaaaaaBARaaaaaaBAR (il s'arrête au dernier "BAR" de la chaîne).
 
Il y a une option que tu peux ajouter à ton masque pour rendre les */+ paresseux par défaut, voir doc.
 

Citation :


Et si je veut que les premières paranthèses captures les deux premiers mots, comme,t dois-je m'y prendre ?


 
<b>([^ ]+ [^ ]+) (.+?)</b>


Message édité par sielfried le 11-02-2007 à 21:25:56

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1513395
Profil sup​primé
Posté le 11-02-2007 à 22:14:07  answer
 

C'est comme le U ?

n°1513427
sielfried
Posté le 11-02-2007 à 23:40:57  profilanswer
 

Ouais voilà c'est U l'option en question.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  regex qui ne marche pas

 

Sujets relatifs
Mon site marche plus sur IE 7 ?[PHP]Pb: Remplacer 1 variable par 1 mot avec RegEx
Pb affichage css sous Firefox mais marche sous IECréer une étude de marché en ligne
Mon scripte ne marche pas avec FireFox?Vérification d'une URL en regex
Fonction FILE, file_get_contents qui marche pas toujours. Help![RegEx] Motif incorrecte ou mauvaise fonction..
Regex qui ne marche pas :@Coloration et regex, marche comme ca veux
Plus de sujets relatifs à : regex qui ne marche pas


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR