Replace et replaceAll [Résolu]

cs_coucounet 83 Messages postés jeudi 24 juillet 2003Date d'inscription 16 février 2005 Dernière intervention - 16 déc. 2003 à 16:27 - Dernière réponse : cs_coucounet 83 Messages postés jeudi 24 juillet 2003Date d'inscription 16 février 2005 Dernière intervention
- 2 févr. 2005 à 10:48
Bonjour je voudrais transformer une chaine de caractères possédant une apostrophe en autre possédant un \ juste avant l'apostrophe:
exemple

AVANT : "Monts d'or"
APRES : "Monts d\'or"

La fonction replace ne fonctionne qu'avec des caractères et \' représente deux caractères donc c'est une chaine => marche pas

chaine.replace('\'', '\\\'')


Avec la fonction replaceAll je n'y arrive pas non plus !

chaine.replaceAll("\'", "\\\'")


Il n'y a aucune différence entre avant et après !

Si quelqu'un a une solution à mon problème ...
Je sais que je pourrais également y arriver en utilisant les expressions régulières mais je ne sais pas m'en servir !!!

Merci

:question) 8-) 8-) koukounet 8-) 8-) :question)
Afficher la suite 

6 réponses

Répondre au sujet
cs_coucounet 83 Messages postés jeudi 24 juillet 2003Date d'inscription 16 février 2005 Dernière intervention - 2 févr. 2005 à 10:48
+3
Utile
Merci de m'avoir répondu !!!
J'avais complétement zappé ce problème et depuis plus d'un an je l'avais résolu par le remplacement par un espace !

J'ai regardé ta proposition, et j'ai encore trouvé une erreur :

Pour mon exemple Mont d'or, il m'enregistre dans la BD "Mont d'\or" !!!

J'ai donc essayé

chaine.replaceAll("\\'", "\\\'")

et là c'est bon !

Merci de votre aide

koukounet
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_coucounet
cs_GodConan 2116 Messages postés samedi 8 novembre 2003Date d'inscriptionContributeurStatut 6 octobre 2012 Dernière intervention - 16 déc. 2003 à 23:41
0
Utile
GodConan :clown)

chaine.replaceAll("\'", "\\\'")

ben deja sa ma pas l air detre ce que tu veux ;o) ...

essai sa :

chaine.replaceAll("'", "\\\'")

;o)

++
Commenter la réponse de cs_GodConan
cs_coucounet 83 Messages postés jeudi 24 juillet 2003Date d'inscription 16 février 2005 Dernière intervention - 17 déc. 2003 à 15:36
0
Utile
Tu as tout à fait raison, je ne demandais pas ce que je voulais réellement !!! Mais j'ai essayé avec :

chaine.replaceAll("'", "\\\'") et même
chaine.replaceAll("'", "\'")

et rien de fonctionne !! Il ignore totalement les \ !!!

Par contre si je fais chaine.replaceAll("'", " ")
(je remplace les apostrophes par des espaces) là ça marche bien !!!

Je pense qu'il faut travailler avec les expressions réguilières, mais je ne sais pas me servir de cet outil !

Merci quand même et si tu as d'autres idées ...

:question) 8-) 8-) koukounet 8-) 8-) :question)
Commenter la réponse de cs_coucounet
cs_GodConan 2116 Messages postés samedi 8 novembre 2003Date d'inscriptionContributeurStatut 6 octobre 2012 Dernière intervention - 18 déc. 2003 à 20:08
0
Utile
GodConan :clown)

moi non plus pour tous dire ;o)
mais tu peu use un tokenizzer et concate de chaine ds une boucle sa prend 2 sec et 3 ligne au lieu d une mais sa marche ;o)...

++
Commenter la réponse de cs_GodConan
ceyes 2 Messages postés lundi 26 juillet 2004Date d'inscription 1 février 2005 Dernière intervention - 1 févr. 2005 à 15:15
0
Utile
Bonjour

Après plusieurs essais concernant d'autre caractères à remplacer, ceci devrai marcher :


chaine.replaceAll("\\'", \\\\')

++


eyes
Commenter la réponse de ceyes
ceyes 2 Messages postés lundi 26 juillet 2004Date d'inscription 1 février 2005 Dernière intervention - 1 févr. 2005 à 15:24
0
Utile
rectification :


chaine.replaceAll("\\'", "\\\\'")


eyes
Commenter la réponse de ceyes

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.