Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

Problème de regex

Aller à la page 1, 2  Suivante
Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
Leonick
WRInaute accro
WRInaute accro

Inscrit le: 08 Aoû 2004
Messages: 9181
Localisation: Val de Marne

URL permanente de ce messagePosté le : Ven Nov 17, 2006 18:49    Sujet du message: Problème de regex

Voilà, j'ai un texte
Code:
Montant TTC <b>46&nbsp;800</b> pour <b>la facture</b>.
dans lequel j'aimerais récupérer le montant. Mais des fois, au lieu de Montant TTC il est inscrit "Total"
J'ai fait un preg_match avec cette expression
Code:
#[\b(Montant TTC|Total)\b]\s<b>([^<]*)</b>#
et le problème, c'est qu'il devrait me sortir
Code:
Montant TTC <b>46&nbsp;800</b>
alors que j'obtiens
Code:
* [0]=>C <b>46&nbsp;800</b>
* [1]=>46&nbsp;800
En fait, il semble considérer Montant TTC comme au choix n'importe laquelle des lettres Crying or Very sad
Comment faudrait-il faire le masque ?
Merci
 
Leonick Visiter le site web du posteur
oxman
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 21 Juin 2004
Messages: 118

URL permanente de ce messagePosté le : Ven Nov 17, 2006 19:05    Sujet du message: Problème de regex

#([0-9]+)</b> pour <b>la facture</b>#
 
oxman
Leonick
WRInaute accro
WRInaute accro

Inscrit le: 08 Aoû 2004
Messages: 9181
Localisation: Val de Marne

URL permanente de ce messagePosté le : Ven Nov 17, 2006 19:11    Sujet du message: Problème de regex

oui, mais je n'ai pas toujours cette fin.
La seule chose semi-constante est Montant TTC ou Total avant et la valeur entre les balises <b>, mais comme il y a &nbsp; comme séparateur des milliers, plus des fois une valeur avec une virgule, en fait je voudrais pouvoir capturer tout ce qui est entre les balises <b> juste après le Montant TTC ou Total.
C'est pour cela que j'avais laissé la 2° balise <b> pour montrer que je ne pouvais pas toutes les capturer. Crying or Very sad
 
Leonick Visiter le site web du posteur
oxman
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 21 Juin 2004
Messages: 118

URL permanente de ce messagePosté le : Ven Nov 17, 2006 19:22    Sujet du message: Problème de regex

#[\b(Montant TTC|Total)\b]\s<b>([^<]+)?([0-9]+)</b>#
 
oxman
Leonick
WRInaute accro
WRInaute accro

Inscrit le: 08 Aoû 2004
Messages: 9181
Localisation: Val de Marne

URL permanente de ce messagePosté le : Ven Nov 17, 2006 19:39    Sujet du message: Problème de regex

Non, il me sort toujours
Code:
* [0]=>C <b>46&nbsp;800</b>
* [1]=>46&nbsp;800
au lieu de
Code:
* [0]=>Montant TTC <b>46&nbsp;800</b>
* [1]=>46&nbsp;800
 
Leonick Visiter le site web du posteur
oxman
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 21 Juin 2004
Messages: 118

URL permanente de ce messagePosté le : Ven Nov 17, 2006 21:27    Sujet du message: Problème de regex

Vérifie dans [2]
 
oxman
Leonick
WRInaute accro
WRInaute accro

Inscrit le: 08 Aoû 2004
Messages: 9181
Localisation: Val de Marne

URL permanente de ce messagePosté le : Ven Nov 17, 2006 21:42    Sujet du message: Problème de regex

Je n'avais pas fait attention, c'est encore pire Crying or Very sad
Code:
Array ( [0] => Array ( [0] => C 46 800  [1] => 46 80 [2] => 0 ) )
il me coupe carrément la valeur. Mais je n'arrive toujours pas à récupérer le masque en entier
 
Leonick Visiter le site web du posteur
oxman
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 21 Juin 2004
Messages: 118

URL permanente de ce messagePosté le : Ven Nov 17, 2006 21:49    Sujet du message: Problème de regex

#[(Montant TTC|Total)] <b>([^<]+)?;([0-9]+)</b>#
 
oxman
Leonick
WRInaute accro
WRInaute accro

Inscrit le: 08 Aoû 2004
Messages: 9181
Localisation: Val de Marne

URL permanente de ce messagePosté le : Ven Nov 17, 2006 22:33    Sujet du message: Problème de regex

pas mieux
Code:
( [0] => Array ( [0] => C 46 800  [1] => 46  [2] => 800 ) )
Au début, j'avais commencé comme cela, à la manière de eregi() mais je n'ai jamais réussi à obtenir le masque entière Crying or Very sad
 
Leonick Visiter le site web du posteur
oxman
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 21 Juin 2004
Messages: 118

URL permanente de ce messagePosté le : Sam Nov 18, 2006 0:04    Sujet du message: Problème de regex

Pas mieux ?
Dans [2] tu as le montant et c'est ce que tu veux.
 
oxman
Leonick
WRInaute accro
WRInaute accro

Inscrit le: 08 Aoû 2004
Messages: 9181
Localisation: Val de Marne

URL permanente de ce messagePosté le : Sam Nov 18, 2006 0:11    Sujet du message: Problème de regex

En fait, je voulais le masque complet, pour ne pas être obligé de refaire un appel pour savoir si c'était montant TTC ou total et aussi le prix. Donc le prix on arrive à l'avoir, mais la capture pourrait s'appliquer sur d'autres endroits dans le texte à lire, partout où le <b> serait précédé d'un espace et de n'importe quel caractère du masque, donc soit "M" soit "o", soit "n", etc... au lieu du mot en totalité Crying or Very sad
 
Leonick Visiter le site web du posteur
oxman
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 21 Juin 2004
Messages: 118

URL permanente de ce messagePosté le : Sam Nov 18, 2006 0:52    Sujet du message: Problème de regex

#((Montant TTC)|(Total)) <b>([^<]+)?;([0-9]+)</b>#

Il faut être précis quand on pose une question.
Bonne soirée/nuit.
 
oxman
Leonick
WRInaute accro
WRInaute accro

Inscrit le: 08 Aoû 2004
Messages: 9181
Localisation: Val de Marne

URL permanente de ce messagePosté le : Sam Nov 18, 2006 12:31    Sujet du message: Problème de regex

Ca marche.
Merci
Je suis nul de ne pas avoir trouvé ça Embarassed
En fait, dans les motifs de capture on peut mettre des mots complets, mais pas dans les autres motifs ?
oxman a écrit:
Bonne soirée/nuit.
J'y étais déjà à cette heure
 
Leonick Visiter le site web du posteur
oxman
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 21 Juin 2004
Messages: 118

URL permanente de ce messagePosté le : Sam Nov 18, 2006 13:19    Sujet du message: Problème de regex

Tu mets ce que tu veux, j'aurais pu très bien mettre (^Montant TTC)
 
oxman
Leonick
WRInaute accro
WRInaute accro

Inscrit le: 08 Aoû 2004
Messages: 9181
Localisation: Val de Marne

URL permanente de ce messagePosté le : Sam Nov 18, 2006 13:23    Sujet du message: Problème de regex

mais dans les motifs non capturants, si on mets
Code:
[Montant TTC]
il considère que cela peut être n'importe quelle lettre comprise dans les crochets, même si elle est seule
 
Leonick Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 2 - Aller à la page 1, 2  Suivante
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

Autres sujets de discussion :

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort