|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
jeromax WRInaute accro

Inscrit le: 12 Nov 2003 Messages: 1085 Localisation: :noitasilacoL
|
Posté le : Mer Mai 05, 2004 16:30 Sujet du message: Expressions régulières |
|
|
Salut
Bon je poste ça dans le "café" mais ce n'est pas une pause...
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...
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: |
$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

Inscrit le: 20 Fév 2003 Messages: 203 Localisation: Montréal, QC
|
Posté le : Mer Mai 05, 2004 17:54 Sujet du message: Expressions régulières |
|
|
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

Inscrit le: 12 Nov 2003 Messages: 1085 Localisation: :noitasilacoL
|
Posté le : Mer Mai 05, 2004 18:34 Sujet du message: Expressions régulières |
|
|
bah non....
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

Inscrit le: 20 Fév 2003 Messages: 203 Localisation: Montréal, QC
|
Posté le : Mer Mai 05, 2004 18:55 Sujet du message: Expressions régulières |
|
|
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: |
$texte= eregi_replace("([^@]*)@([^&]+)&([^@]*)","\\1[\\2]\\3",$texte);
|
Ben |
|
| |
|
 |
jeromax WRInaute accro

Inscrit le: 12 Nov 2003 Messages: 1085 Localisation: :noitasilacoL
|
Posté le : Mer Mai 05, 2004 19:27 Sujet du message: Expressions régulières |
|
|
WAOUUUUUUUUUUUHHHH ! ! !
ça marche ! !!
Merci ben ! !!
Génial ! |
|
| |
|
 |
| |
|
|