Expressions régulières

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics


jeromax
WRInaute passionné
WRInaute passionné
 
Messages: 1110
Inscription: 12 Nov 2003

Expressions régulières

Message le Mer Mai 05, 2004 15:30

Salut
Bon je poste ça dans le "café" mais ce n'est pas une pause... :wink:
Je me rabat sur ce forum qui ne traite pas de programation, mais comme ici il y a des fortiches et que finalement l'urlrewritting utilise des expressions régulières... :D
J'ai cherché partout, j'ai posté sur des forum de prog mais je n'ai pas trouvé... j'espère que ça existe...
Voila mon problème d'expressions régulières (très très simplifié au niveau des masques)
C'est en php, mais ça n'a aucune importance.
Code: Tout sélectionner
$texte='@texteA& suitedemots @texteB& suitedemots ...';
$texte= eregi_replace("(.+)@(.+)&(.+)","\\1[\\2]\\3",$texte);

lorsque j'affiche $texte
j'ai "@texteA& suitedemots [texteB] suitedemots ..."
alors que je voudrais "[texteA] suitedemots [texteB] suitedemots ..."
Il y a un moyen pour dire "exécute tant que tu en trouve" ou "remplace tout ce qui correspond au masque" dans une expression régulière.
Je ne veux pas utiliser de boucles en php. Je dois vraiment le faire en expressions régulières...
Il ya t-il une instruction dans les expression régulières qui permettent de le faire ?
Merciiiiiiiii


Ben
WRInaute discret
WRInaute discret
 
Messages: 217
Inscription: 20 Fév 2003

Message le Mer Mai 05, 2004 16:54

tu ne peux pas simplement remplacer les @ par '[' et les & par ']' ? (eventuellement avec certaines conditions, p.ex eregi_replace("[ ]@[ ]"," [ ",$texte) etc...)

Ben


jeromax
WRInaute passionné
WRInaute passionné
 
Messages: 1110
Inscription: 12 Nov 2003

Message le Mer Mai 05, 2004 17:34

bah non.... :wink:
C'est plus compliqué que ça...
Je trouve ça bizarre qu'on ne peut pas préciser que ça fonctionne pour l'ensemble du texte...
En fait mon cas est un peu comme le BBCode dans ce forum
pour un lien, on a
[url="-http://aaaaaaaaa.com"]lien1[/url]

sachant qu'il peut en avoir une grosse quantité (indéfini) dans le texte, comment faire pour qu'on est après traitement chaque lien de la forme:
<a href="-http://aaaaaaaaa.com">lien1</a>

Je ne me résignerai à découper les chaines de caractères puis à les recoller etc... qu'après avoir écumé le net à la recherche de la solution.... ;-)
Comment fait WRI d'ailleurs?


Ben
WRInaute discret
WRInaute discret
 
Messages: 217
Inscription: 20 Fév 2003

Message le Mer Mai 05, 2004 17:55

En fait je pense que ton problème vient des (.+), techniquement ca signifie prendre n'importe quel caractere une fois ou plus, ca englobe les @ et les &

essaye:

Code: Tout sélectionner
$texte= eregi_replace("([^@]*)@([^&]+)&([^@]*)","\\1[\\2]\\3",$texte);


Ben


jeromax
WRInaute passionné
WRInaute passionné
 
Messages: 1110
Inscription: 12 Nov 2003

Message le Mer Mai 05, 2004 18:27

WAOUUUUUUUUUUUHHHH ! ! !
ça marche ! !!
Merci ben ! !!
Génial !


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.

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

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité