Accueil > Forum > > > > Un regex qui marche pas :(
Un regex qui marche pas :(
jeudi 14 juin 2007 à 22:37:57 |
Un regex qui marche pas :(

kangoo75
|
Bonjour , je suis un peut nul en Regex et j'ai bidouillé un script mais
qui marche pas afin de récuperer la note , les commentaires positif et
négatif , le nom et la date de chaque commentaire , voici mon code
(pouvez vous m'aider?)
Merci
----------------------------------------------------------------
<?php
$texte=' <div class="commentaire">
Un commentaire :
<img src="note.png" /> 9
<div class="comments">
<span class="commentaireplus">+</span>
j\'adore la déco
<span class="commentairemoins">-</span>
Accueil pas agréable
</div>
<strong> Christine </strong>
Mere au foyer
France - 13 juin 2007
</div>
<div class="commentaire">
Un commentaire :
<img src="note.png" /> 7
<div class="comments">
<span class="commentaireplus">+</span>
j\'aime la télé
<span class="commentairemoins">-</span>
rien je trouve
</div>
<strong> Roger </strong>
Pere célibataire
France - 13 juin 2007
</div>';
preg_match_all("/<div class=\"commentaire\">{*}<img
src=\"[^>]+\">{*}<div class=\"comments\"><span
class=\"plus\">+<\/span>{*}<span
class=\"plus\">-<\/span>{*}<\/div><strong>{*}<\/strong>{*}<\/div>
/siU", $input, $matches, PREG_SET_ORDER);
print_r($matches);
|
|
vendredi 15 juin 2007 à 12:49:30 |
Re : Un regex qui marche pas :(

DiGhan
|
Salut,
pour pouvoir capturer des données au sein d'une regex, il faut faire appel aux parenthèses capturantes (absentes dans ton masque). Par exemple :
<?php
$string = 'capturez-moi'; $pattern = '#([a-z]+)-([a-z]+)#i'; preg_match_all($pattern,$string,$matches,PREG_SET_ORDER); echo '<pre>',print_r($matches),'</pre>';
?>
|
|
vendredi 15 juin 2007 à 16:16:46 |
Re : Un regex qui marche pas :(

garfield90
|
Pourquoi faire une regex pour ca ? normalement, logiquement, tu as stocké ces informations quelques part ( XML, BDD, autres) et la récupérer les infos se fait d'une maniere beaucoup plus triviale.
Sinon, si ton code est bien formé, ton HTML => XML, tu utilises alors le modele DOM ou SimpleXML pour récuperer les informations, cas relativement simple.
Enfin, si tu veux t'amuser avec les expressions rationnelles, regardes ton pattern et aussi des tutos, et tu verras une des raisons pour lesquelles ca marche pas.
Ensuite construit ta regex au fur et a mesure, ou fait en plusieurs (chacune récupérant l'information souhaitée)
"They are 10 sorts of persons those understanding binary and those not"
|
|
vendredi 15 juin 2007 à 17:31:42 |
Re : Un regex qui marche pas :(

kangoo75
|
ok merci, j'ai reussi à bidouiller un truc qui marche : preg_match_all('#<div class="commentaire">.*<img src="note.png" \/>(.*)<div class="comments">.*<span class="commentaireplus">\+<\/span>(.*)<span class="commentairemoins">-<\/span>(.*)<\/div>.*<strong>(.*)<\/strong>.*-(.*)<\/div>#misU', $texte, $matches, PREG_SET_ORDER);
Par contre lorsque par exemple " <span class="commentairemoins">-</span> Accueil pas agréable " ou " <span class="commentaireplus">+</span> j\'adore la déco" est absent, le regex ne marche plus , comment faire pour résoudre ce probleme?
Note : je dois récuperer les infos d'une page web distante
Merci
|
|
vendredi 15 juin 2007 à 21:21:50 |
Re : Un regex qui marche pas :(

DiGhan
|
Utilise la clause '?' qui indique une ou aucune fois la séquence qui précède. Exemple :
<?php
$pattern = '#(?:<span class="commentairemoins">-<\/span>(.*)<\/div>)?#'; preg_match_all($pattern,$string,$matches,PREG_SET_ORDER);
?>
NB : la séquence (?:...) indique qu'on ne souhaite pas capturer les données entre ces parenthèses.
|
|
vendredi 15 juin 2007 à 22:26:29 |
Re : Un regex qui marche pas :(

kangoo75
|
alors la merci à tous  ! ca marche nikel maintenant ! je met le regex final (ca peux servir à d'autre) : preg_match_all('#<div class="commentaire">.*<img src="note.png" \/>(.*)<div class="comments">.*(?:<span class="commentaireplus">\+<\/span>(.*))?(?:<span class="commentairemoins">-<\/span>(.*))?<\/div>.*<strong>(.*)<\/strong>.*-(.*)<\/div>#misU', $texte, $matches, PREG_SET_ORDER);
|
|
Cette discussion est classée dans : marche, regex, juin, commentaire, france
Répondre à ce message
Sujets en rapport avec ce message
mon simple script ca marche pas! [ par anfakhaled ]
slt, tout le monde ,j'as un problem sur mon code mysql ,ca marche pas j'essayer plusieur fois, aider moi svp! voila mon script : <!DOCTYPE html PUB
regex [ par nbpro ]
g un problème avec "a-z un espace suivit de deux point""[a-z]+\s\:" la chaine qui paré simple marche pas avec les ":" mai ds se sens la sa marche "[:
MON WAMPSERVER NE MARCHE PAS ! [ par tmsarts ]
Salut t.m J'ai installer le WAMPSERVEUR sur mon S.E Windows 7, ce dernier il est en orange et m'indique qu'il est on ligne, mais quand je veu accédé a
jpgraph ne permet passage variable en URL avec GET !!!!!!!!! [ par midoxe ]
Bonjour, je rencontre un problème qui me fait chier :p, je travail avec jpgraph pour générer des histogramme ça marche Nikel, donc j'ai essayer de re
php [ par soukaouta ]
bonjour tout le monde, j'ai essaye de faire un blog avec des commentaires en utilisant PHP5,tout se passe bien,l'ajout des message,l'affichage,l'ajout
Test tout simple mais qui marche pas [ par MEGATRIX ]
Salut je suis débutant en php et mon code n'affiche rien pouvez vous m'aider? merci ">
WampServer2.2a-x32 NE MARCHE PAS ! [ par tmsarts ]
Salut, Je travail sous Win7, j'ai installé WampServer2.2a-x32 mais il est en offligne et ne marche plus !! est ce qu'il ya une solution please; merci
plugin [ par elmatadormoroco ]
slt svp comment relier plugin commentaire de facebook a la base de donnée wordpress pour ke a chque fois un commentraire et ajouter donne ma page auto
Condition php [ par phoenixgreg ]
Bonsoir all ! Besoin d'un petit coup de main pour une simple condition en php. Je fais un blog et j'aimerai, quand un article ne comporte pas de com
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|