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 20/02/2008, 10h44   #1
Membre du Club
 
Inscription : août 2006
Messages : 108
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 108
Points : 46
Points : 46
Par défaut Remplacements par expressions régulières

Bonjour,

j ai ce texte

Code :
1
2
 
$str = "by [a=Mathias Schaffhäuser].  [ b]Labelcode: LC 10695[ /b]  ";
je voudrais obtenir

by Mathias Schaffhäuser. Labelcode: LC 10695

j'utilise cette expression mais sans grand succes :

$str = trim(ereg_replace("\[(.*)\]","",$str));

si vous pouviez me guider ce serait cool

Merci
marielaure2805 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 11h01   #2
Membre du Club
 
Inscription : août 2006
Messages : 108
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 108
Points : 46
Points : 46
j ai trouve,

je fais peut etre un peut trop d instruction a la suite mais ca marche,

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
 
$pattern = '\[/[^\]]*\]';
$str = trim(ereg_replace($pattern,"",$str));
 
$pattern = '\[[^\]]*\]';
$str = trim(ereg_replace($pattern,"",$str));
 
$pattern = '\[[^\]]*=';
$str = trim(ereg_replace($pattern,"",$str));
 
$pattern = ']';
$str = trim(str_replace($pattern,"",$str));
marielaure2805 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 11h53   #3
Membre éprouvé
 
Développeur Web
Inscription : avril 2005
Messages : 395
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 395
Points : 479
Points : 479
salut,


Code php :
1
2
3
4
5
6
7
 
$subject = "by [a=Mathias Schaffhäuser].  [ b]Labelcode: LC 10695[ /b]  ";
		$pattern = '`(\[a=|\[ ?b])(?(1)([^]]+)|([^[]+))(?<![b])(]|\[ ?/b])`i'; 
		$replacement = '${2}';
		echo preg_replace($pattern, $replacement, $subject);
 
// by Mathias Schaffhäuser. Labelcode: LC 10695

je le trouve un peu compliqué le masque mais ça l'air de fonctionner.

ps : bémole le masque tel quel fonctionne avec balise a ou b ...
__________________
Zend PHP5 Certification
MySQL 4 Core Certification
Gats 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 03h18.


 
 
 
 
Partenaires

Hébergement Web