Replace et replaceAll

Résolu
cs_coucounet Messages postés 83 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 16 février 2005 - 16 déc. 2003 à 16:27
cs_coucounet Messages postés 83 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 16 février 2005 - 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)
A voir également:

6 réponses

cs_coucounet Messages postés 83 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 16 février 2005
2 févr. 2005 à 10:48
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
3
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 11
16 déc. 2003 à 23:41
GodConan :clown)

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

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

essai sa :

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

;o)

++
0
cs_coucounet Messages postés 83 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 16 février 2005
17 déc. 2003 à 15:36
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)
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 11
18 déc. 2003 à 20:08
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)...

++
0

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

Posez votre question
ceyes Messages postés 2 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 1 février 2005
1 févr. 2005 à 15:15
Bonjour

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


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

++


eyes
0
ceyes Messages postés 2 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 1 février 2005
1 févr. 2005 à 15:24
rectification :


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


eyes
0
Rejoignez-nous