Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/08/2007, 10h15   #1
Membre du Club
 
Inscription : mars 2006
Messages : 90
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 90
Points : 50
Points : 50
Par défaut preg_match et les "bornes"

Bonjour,

Voici mon expression reguliere :

Code :
1
2
3
4
 
	$motif='`\[(.)(.)\]`';
	$chaine = "<IMG SRC=\"$1$2.gif\">";
	$chain  = preg_replace($motif,$chaine,$texte);
Elle fonctionne tres bien sauf quand j'ai plusieurs [..] sur la même ligne,
par exemple : [qs]blablablabla[sd]
me donne comme résultat : <img1 qs><img2 sd>, en fait cela m'a mangé le texte entre 2.

Comment faire ? il me semble qu'il y a une histoire de "U" à mettre quelque part mais impossible de m'en rappeler

Merci de votre aide.
Hesiode est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 10h50   #2
Membre actif
 
Homme Florian
Chef de projet NTIC
Inscription : novembre 2004
Messages : 205
Détails du profil
Informations personnelles :
Nom : Homme Florian
Âge : 26
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Chef de projet NTIC
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 205
Points : 159
Points : 159
Verifie bien ton code, car d'apres ce que je vois chez moi avec ca, tout va bien ! Tu es sur que c'est cette fonction qui est appelee ? Car ton resultat ne coincide pas avec ta chaine de remplacement.

Code :
1
2
3
4
5
6
7
8
9
10
<?php
 
$texte = "[qs]blablablabla[sd]\n[aj]dfgfd[bc]1[nd]\n";
$motif='`\[(.)(.)\]`';
$chaine = "<IMG SRC=\"$1$2.gif\">";
$chain  = preg_replace($motif,$chaine,$texte);
 
echo $chain;
 
?>
Resultat:
Citation:
<IMG SRC="qs.gif">blablablabla<IMG SRC="sd.gif">
<IMG SRC="aj.gif">dfgfd<IMG SRC="bc.gif">1<IMG SRC="nd.gif">
En outre, tu peux faire quelquechose d'un poil plus logique:
Code :
1
2
$motif='`\[(.{2})\]`';
$chaine = "<IMG SRC=\"$1.gif\">";
NaeiKinDus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 10h57   #3
Membre du Club
 
Inscription : mars 2006
Messages : 90
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 90
Points : 50
Points : 50
Erf, tu as tout à fait raison ! je faisais un traitement entre les 2.

Je suis vraiment confus ! C'est ça de développer la tête dans le guidon

En tout cas merci beaucoup, et aussi pour ta petite modif

Bonne journée
Hesiode est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h54.


 
 
 
 
Partenaires

Hébergement Web