Les Allergies
Alimentaires
Posez votre question Signaler

[php]Expression régulière [Résolu]

nicorz 104Messages postés 9 septembre 2008Date d'inscription 13 novembre 2011Dernière intervention - Dernière réponse le 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 ? :)
Lire la suite 

[php]Expression régulière »

8 réponses
Réponse
+0
moins plus
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 "] ] ]"
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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 "] ] ]"
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
merde formatage de m****

ereg_replace( "([[[.*]]])( monsieur)", "\\1 marc", ....
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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)
Ajouter un commentaire
Réponse
+0
moins plus
Merci, je sais comment je vais faire, je vais analyser ligne par ligne.
Ajouter un commentaire
Ce document intitulé « [php]Expression régulière » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?