Forums Rue-Montgallet.com
Rue-Montgallet.comRue-Hardware.comRue-Occasion.comRue-DVD.comRue-Jeuxvideo.comRue-AudioVideo.comRue-Telephone.comForums
S'inscrire | S'identifier |
| Recherche avancée | Aide
 
 

Achat - Vente Divers : super-warrior, S26157 et 31 utilisateurs inconnus

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

Besoin d'un pro des regexp (résolu)

 
n°2601
omega200
Profil : Jeune recrue
Posté le 08-12-2002 à 20:57:12  profilanswer
 

Je suis entrein de finir mon nouveau système de formatage de texte et je viens de m'appercevoir d'un détail génant.
J'utilise la fonction preg_replace() comme suis :
preg_replace($regexp,$remplace,$texte);
 
avec par exemple :
$regexp = "/:[bB]:(.*)(.*):\/[bB]:/";
$remplace="<B>\1\2</B>";
 
Avec
$texte="pas gras:b:gras:/b:pas gras";
tout ce passe bien
 
Mais avec
$texte="pas gras:b:gras:/b:pas graspas gras:b:gras:/b:pas graspas gras:b:gras:/b:pas gras";
j'obtiens :
pas gras<B>gras:/b:pas graspas gras:b:gras:/b:pas graspas gras:b:gras</B>pas gras
 
Bref, là, ca merde, il me remplace les balises extérieure mais pas celle qui sont situé au milieu. Est ce que quelqu'un peut m'indiquer une regexp ou une autre fonction utilisant les regexp qui réagirait comme je le souhaiterais?
 
PS1 : Le nombre de ":b:" ":/b:" est variable.
PS2 : pour le moment, l'ensemble des regexp est passé sous forme de tableau, là j'ai fait que mettre un exemple réduit au minimum.
 
Merci d'avance pour ceux qui me doneront une solution à ce problème.


Message édité par omega200 le 08-12-2002 à 21:12:06
n°2602
omega200
Profil : Jeune recrue
Posté le 08-12-2002 à 21:12:19  profilanswer
 

C'est bon, on m'a donné la réponse.
Il falait que je finisses la regexp par "/U" et non par un "/" tout seul.
:)
 
Grand merci à Olivier (le créateur de FPDF) pour sa solution et la rapidité de sa réponse.

n°2603
aoko_6o6
Le poulet de la persécution
Profil : Membre
Posté le 08-12-2002 à 21:16:18  profilanswer
 

Je reprends juste ton post pour un pb de smiley :lol:
 
J'utilise la fonction preg_replace() comme suis :
preg_replace($regexp,$remplace,$texte);
 
avec par exemple :

Code :
  1. $regexp = "/:[bB]:(.*)(.*):\/[bB]:/";
  2. $remplace="<B>\1\2</B>";


Avec

Code :
  1. $texte="pas gras:b:gras:/b:pas gras";


tout ce passe bien
 
Mais avec

Code :
  1. $texte="pas gras:b:gras:/b:pas graspas gras:b:gras:/b:pas graspas gras:b:gras:/b:pas gras";


j'obtiens :

Code :
  1. pas gras<B>gras:/b:pas graspas gras:b:gras:/b:pas graspas gras:b:gras</B>pas gras


Message édité par aoko_6o6 le 08-12-2002 à 21:17:40
n°2604
Hinou
Possède blague a 2 balle a +10
Profil : Membre
Posté le 09-12-2002 à 11:25:35  profilanswer
 

C'est clair que c'est plus clair :D


---------------
Administer c'est bien développer c'est mieux
Créateur de l'association des "elfes de la forest" (balançage de troll en tous genre)
Créateur de l'anti-cs team (cs c'est un mod pas un jeux :na:)

Aller à :
Ajouter une réponse