[Résolu] Problème Expressions régulières

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


Dharius
WRInaute passionné
WRInaute passionné
 
Messages: 630
Inscription: Mer Avr 06, 2005 14:04

[Résolu] Problème Expressions régulières

Message le Lun Oct 29, 2007 20:37

Bonjour,

Une fois n'est pas coutume, j'ai un problème d'expressions régulières... mais je fais des progrès :D

Voilà, j'ai un texte du genre :

$texte = "tarif1 :US$6; tarif2 :US$12; tarif3 : US$2";

je voudrais replacer "US$X" par "valeur=X"...

J'utilise l'expression suivante mais elle ne remplace que la première occurence :

Code: Tout sélectionner
eregi_replace ("US(((.*){1,5}))", "valeur=\\1",$texte);


Qu'elqu'un s'y connait-il assez pour m'aider ?
Dernière édition par Dharius le Mar Oct 30, 2007 18:05, édité 3 fois.


medium69
WRInaute accro
WRInaute accro
 
Messages: 2164
Inscription: Sam Mai 07, 2005 9:36

Re: Problème Expressions régulières

Message le Lun Oct 29, 2007 21:00

Code: Tout sélectionner
preg_replace('#US\$([0-9])#U', 'valeur=$1', $texte);

ZelkiN
WRInaute impliqué
WRInaute impliqué
 
Messages: 307
Inscription: Ven Juil 27, 2007 13:42

Message le Lun Oct 29, 2007 21:28

+1 j'aurai mis la meme que medium69, a tester


medium69
WRInaute accro
WRInaute accro
 
Messages: 2164
Inscription: Sam Mai 07, 2005 9:36

Message le Lun Oct 29, 2007 21:30

ZelkiN a écrit:+1 j'aurai mis la meme que medium69, a tester


Elle fonctionne :wink:

Preg est beaucoup plus rapide que ereg de surcroît


Dharius
WRInaute passionné
WRInaute passionné
 
Messages: 630
Inscription: Mer Avr 06, 2005 14:04

Message le Mar Oct 30, 2007 14:38

MErci, c'est parfait, ca marche :)

THX


Dharius
WRInaute passionné
WRInaute passionné
 
Messages: 630
Inscription: Mer Avr 06, 2005 14:04

Message le Mar Oct 30, 2007 16:12

Heu... en fait je complique un peu la chose...

je veux multiplier cette valauer par 3.14 par exemple genre "'valeur=$1*3.14" -> mais ça ne marche pas bien entendu!

Comment faire ?


medium69
WRInaute accro
WRInaute accro
 
Messages: 2164
Inscription: Sam Mai 07, 2005 9:36

Message le Mar Oct 30, 2007 17:14

Dharius a écrit:Heu... en fait je complique un peu la chose...

je veux multiplier cette valauer par 3.14 par exemple genre "'valeur=$1*3.14" -> mais ça ne marche pas bien entendu!

Comment faire ?


C'est pourtant simple :mrgreen: ...

Il faut que tu passe passe une fonction pour cela...

dans ce cas cela devient :

Dans la première on ne cherchait qu'une séquence US$ suivi d'au moins un chiffre.

Dans le nouveau cas, non seulement, nous voulons récupérer l'intergalité du nombre et le modifier...

On cherche le masque US$ suivi d'une série de chiffre de 1 à l'infini, suivi de n'importe quel caractère qui n'est pas un chiffre ou alors une fin de texte.

Code: Tout sélectionner
function MaSuperFonction($value) {

$var = 'valeur='.$value[1]*3.14.$value[2];

return $var
}

preg_replace_callback('#US\$([0-9]+)([^0-9]|$)#U', 'MaSuperFonction', $texte);


J'ai galéré longtemps avec les regex, et maintenant c'est aussi limpide que de l'eau claire...

Je devrais peut-être me mettre au chinois un de ces quatre :wink:


Dharius
WRInaute passionné
WRInaute passionné
 
Messages: 630
Inscription: Mer Avr 06, 2005 14:04

Message le Mar Oct 30, 2007 17:28

Lol, j'allucine, ça marche et ça a l'air si facile pour toi : MERCI !!!

En hommage pour toi, la foncion portera toujours le même nom "MaSuperFonction" hihi...

Wai c'est comme tout, à un moment, tu as le déclic et tout te parait plus simple....

Merci ;)


medium69
WRInaute accro
WRInaute accro
 
Messages: 2164
Inscription: Sam Mai 07, 2005 9:36

Message le Mar Oct 30, 2007 17:36

Dharius a écrit:Lol, j'allucine, ça marche et ça a l'air si facile pour toi :


Tu sais... j'ai galéré durant des heures et des heures, car c'est vraiment du chinois.

Mais une fois que tu as réussi à comprendre toutes les facettes, c'est un vrai régal.

Dharius a écrit:En hommage pour toi, la foncion portera toujours le même nom "MaSuperFonction" hihi...


euh...

Gaffe à toi, j'ai dépose le nom à l'Inpi aujourd'hui :lol:


medium69
WRInaute accro
WRInaute accro
 
Messages: 2164
Inscription: Sam Mai 07, 2005 9:36

Message le Mar Oct 30, 2007 17:39

je viens de voir que tu utilisais eregi_replace...

Si US peut aussi être us, il faut que tu ajoutes « i » à la suite de « U » dans preg_replace_callback


Dharius
WRInaute passionné
WRInaute passionné
 
Messages: 630
Inscription: Mer Avr 06, 2005 14:04

Message le Mar Oct 30, 2007 18:04

merci ! :)


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Suggest

  • Google Suggest
    Cet outil vous permet d'obtenir une liste de 10 mots ou expressions suggérés par Google sur la base d'un mot que vous fournissez.


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités