Bonjour j'ai du mal avec preg_replace.
Je souhaites remplacer d''une par d'une mais je n'y parviens pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part preg_replace("#[a-zA-Z]''#", "$0\'", $a);
Bonjour j'ai du mal avec preg_replace.
Je souhaites remplacer d''une par d'une mais je n'y parviens pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part preg_replace("#[a-zA-Z]''#", "$0\'", $a);
Dernière modification par stealth35 ; 07/09/2011 à 14h22.
un str_replace suffit
Code : Sélectionner tout - Visualiser dans une fenêtre à part str_replace("''", "'", $text);
Oui, mais le problème, c'est qu'il y a des valeurs comme 3.5'' qui ne doivent pas être modifiées
Bonjour,
Juste comme ça on par d'un double ' (touche 4 clavier standard FR) ou d'un simple " (touche 3 clavier standard FR)
Car c'est juste pas du tout la même chose dans ton preg_replace ensuite
Cordialement,
Si vous débutez en PHP : Tutoriel pour grands débutants
Mes tutoriels : http://alexandre-joly.developpez.com/
Mon blog : https://www.kanjian.fr/
Il s'agit de de deux guillemets simple
Ok c'était pour être sur car j'ai souvent vue des confusion entre quotes (') et guillemets (")
Pour ton soucis tu peux nous donner un exemple de retour que tu as après ta fonction preg_replace ?
Cordialement,
Si vous débutez en PHP : Tutoriel pour grands débutants
Mes tutoriels : http://alexandre-joly.developpez.com/
Mon blog : https://www.kanjian.fr/
Oui mais j'ai par exemple
d''une -> d'une
3.5'' ne doit pas être modifier
Donc str_replace ne peut pas marché car il va tous remplacer.
Oui dans un cas classique pas besoin d'aller plus loin mais il ne veut pas que la modification soit faite pour les chaine de type 3.5'' d'ou dans son preg_replace la volonté de ne faire le remplacement que pour une lettre suivie de ''.
Cordialement,
Si vous débutez en PHP : Tutoriel pour grands débutants
Mes tutoriels : http://alexandre-joly.developpez.com/
Mon blog : https://www.kanjian.fr/
C'est ca
Ce sont des guillemets simples (touche 4)
pour les pouces en ASCII le caractère correct est le 3
sinon fait juste :
Code : Sélectionner tout - Visualiser dans une fenêtre à part preg_replace('/\'+(?=\w)/', '\'', $text);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $pattern = '/(\w+)["]{1}(\w+)/'; $replacement = "$1'$2"; echo preg_replace($pattern, $replacement, $string);
Merci, mais cela ne correspond pas tout a fait avec ce que je cherche.
Begany, peut m'expliquer le rôle de ton pattern, car je suis un peu perdu.
J'ai des mal avec les expressions. Peut-on trouver une liste des arguments possible dans le pattern, car le documentation de PHP reste assez mince pour cela.
J'ai essayer ceci:
Mais j'ai le résultat suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $pattern = "/[a-zA-Z]['']{2}/"; $replacement = "$0\""; $a = preg_replace($pattern, $replacement, $a);
d''une -> d''"une (2 apostrophes simple dans le premier cas et 2 apostrophes simple + 1 double dans le second)
Oui stealth35 j'ai essayé le tiens, mais sans succès. Merci quand même.
Bon j'ai résolu mon problème
Résultat:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $pattern = "/([a-zA-Z])('')/"; $replacement = "$1'"; $a = preg_replace($pattern, $replacement, $a);
d''une -> d'une
Merci à tous.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager