[php]Expression régulière

Résolu/Fermé
nicorz Messages postés 100 Date d'inscription mardi 9 septembre 2008 Statut Membre Dernière intervention 12 janvier 2011 - 13 oct. 2008 à 19:16
nicorz Messages postés 100 Date d'inscription mardi 9 septembre 2008 Statut Membre Dernière intervention 12 janvier 2011 - 13 oct. 2008 à 21:01
Bonjour,

Ça fait un moment que je cale là dessus, comment est-ce que l'on doit faire pour "ne pas prendre la chaine de être ça et ça".

Un exemple sera plus parlant : J'ai une variable qui contient "[Bonjour monsieur] monsieur, comment ça vas ?" et j'aimerais la transformer "Bonjour monsieur Marc, comment ça vas ?".

Donc faire

$chaine = "[Bonjour monsieur] monsieur, comment ça vas ?";
$chaine = ereg_replace("monsieur", "Marc", $chaine);
echo $chaine;

Le problème là c'est que ça va me changer les deux monsieur, je ne veux pas changer ce qui est entre "[" et "]".
Est-ce que quelqu'un à une idée ? :)
A voir également:

8 réponses

nicorz Messages postés 100 Date d'inscription mardi 9 septembre 2008 Statut Membre Dernière intervention 12 janvier 2011 19
13 oct. 2008 à 19:21
Arf j'avais oublier le formatage du forum, je voulais dire
$chaine = "[ [ [ Bonjour monsieur ] ] ] monsieur, comment ça vas ?";
$chaine = ereg_replace("monsieur", "Marc", $chaine);
echo $chaine; 

Donc entre
"[ [ [" et "] ] ]"
0
cela me parrait un peut complexe pour dire bonjour, mais bon si c'est ce que tu veux... La meilleure solution que j'ai a te proposer est de remplacer le second monsieur par xxxxxxxxx ou n'importe quoi d'autre que t'est sur de ne voir qu'une seule fois dans ta phrase. Sinon regarde du cote des parentheses
dans ton cas ereg_replace ( (monsieur)* (monsieur), "\\2marc", ... ou quelque chose dans le style
0
nicorz Messages postés 100 Date d'inscription mardi 9 septembre 2008 Statut Membre Dernière intervention 12 janvier 2011 19
13 oct. 2008 à 19:55
Non ce n'est pas ça que je veux,, en fait, je fais ma propre syntaxe et je ne veux pas formater ce qu'il y a entre "[ [ [" et "] ] ]"
0
Ben dans ce cas tu met ereg_replace("([.*])(monsieur)", "\\1 marc"), et si ce n'est pas ce que tu veux , va voir la doc.
De rien
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
merde formatage de m****

ereg_replace( "([[[.*]]])( monsieur)", "\\1 marc", ....
0
nicorz Messages postés 100 Date d'inscription mardi 9 septembre 2008 Statut Membre Dernière intervention 12 janvier 2011 19
13 oct. 2008 à 20:16
J'ai été voir la doc, mais il n'y a pas ce que je cherche.
En fait imaginons que je fais mon propre wiki.
j'ai ma syntaxe qui se présente comme ça :

google
texte en gras
@@@
Ici le code ne sera pas formaté:
{google.be google}
texte en *gras*
@@@

Donc voilà, là je veux que tout ce qui a entre @@@ et @@@ ne se voie pas.
0
Dans ce cas, utilises autre chose que les expressions regulieres, car la je ne comprends strictement rien a ce que tu veux realiser (ou du moins le rapport avec la premiere question)
0
nicorz Messages postés 100 Date d'inscription mardi 9 septembre 2008 Statut Membre Dernière intervention 12 janvier 2011 19
13 oct. 2008 à 21:01
Merci, je sais comment je vais faire, je vais analyser ligne par ligne.
0