Expressions régulières

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics


jeromax
WRInaute accro
WRInaute accro
 
Messages: 1087
Inscription: Mer Nov 12, 2003 17:48

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 occasionnel
WRInaute occasionnel
 
Messages: 209
Inscription: Jeu Fév 20, 2003 20:30

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 accro
WRInaute accro
 
Messages: 1087
Inscription: Mer Nov 12, 2003 17:48

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 occasionnel
WRInaute occasionnel
 
Messages: 209
Inscription: Jeu Fév 20, 2003 20:30

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 accro
WRInaute accro
 
Messages: 1087
Inscription: Mer Nov 12, 2003 17:48

Message le Mer Mai 05, 2004 18:27

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


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 Julien Coquet, expert certifié officiellement par Google Analytics.

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

  • Suggestion de mots Google
    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