Page 1 sur 1

petite regexp qui prend la tete

Posté : 16 janv. 2009, 12:54
par rebaj
Bonjour,

Je souhaite virer tous les "font-family: unFont;" d'un code source html.

J'écris donc cette regex, qui ne marche pas, ou est ce que je me trompe??

Code : Tout sélectionner

$pattern = "(font\-family:(.+);$)"; $string=ereg_replace($pattern,"",$string); echo $string;

merci pour vos lumières!

Posté : 16 janv. 2009, 12:58
par jojolapine
Euh... le $ en trop?
Sinon pour faire des tests rapides: http://lumadis.be ;)

Posté : 16 janv. 2009, 13:26
par Invité
ok je viens de tester, et je me rend compte que cette regexp:

Code : Tout sélectionner

/font-family(.+);/
me renvoie bien à partir de "font-family: maFont" sauf qu'ensuite il s'arrête au dernier ; rencontré sur la ligne, et non au premier! ce qui fait que souvent je me retrouve a virer

Code : Tout sélectionner

font-family: "Arial","sans-serif"; color: black;
aulieu de

Code : Tout sélectionner

font-family: "Arial","sans-serif";[code] il y a un moyen de spécifier que je veux qu'il s'arrête au premier trouvé? merci pour le testeur, super utile!

Posté : 16 janv. 2009, 14:12
par jojolapine
il faut utiliser le ? derrière le + afin de rendre l'opérateur "non-gourmand", ou alors utilsier l'option "U", je te laisse regarder le cours sur le site pour plus de détails ;)

Posté : 16 janv. 2009, 15:57
par Invité
Merci cela fait bien son effet!!!

Allez j'ouvre le débat : pourquoi diable une regexp serait-elle plus gourmande qu'on le lui demande?

++

Posté : 16 janv. 2009, 16:37
par Ryle
Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton Image qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)


Quant à ta question sur le côté gourmand de la regexp, on peut retourner la question et se demander pourquoi, alors que tu lui offres une longue et magnifique chaine qui correspond tout autant à ton masque, tu voudrais qu'elle se contente de quelques miettes en s'arrêtant à la première bouchée ? ;)

Posté : 16 janv. 2009, 17:51
par AB
Et puis de toutes façons quand il y a plusieurs possibilités, on doit bien définir un comportement par défaut :wink: