[php]Expression régulière

Résolu
nicorz Messages postés 100 Date d'inscription   Statut Membre Dernière intervention   -  
nicorz Messages postés 100 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   19
 
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
mc
 
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   Statut Membre Dernière intervention   19
 
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
mc
 
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
mc
 
merde formatage de m****

ereg_replace( "([[[.*]]])( monsieur)", "\\1 marc", ....
0
nicorz Messages postés 100 Date d'inscription   Statut Membre Dernière intervention   19
 
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
mc
 
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   Statut Membre Dernière intervention   19
 
Merci, je sais comment je vais faire, je vais analyser ligne par ligne.
0