Échapper les caractères

Le problème exposé dans ce sujet a été résolu.

Salut Zesteurs & Zesteuses,

Je suis en train de créer un petit langage de programmation Lisp-like (peut être que je ferai un tutoriel dessus). Cependant, au moment d'implémenter les caractères échappés, je fais face à un problème: Je voudrais remplacer tous les caractères précédés d'un backslash par le caractère échappé correspondant sans avoir à traiter tous les caractères un à un. Ce que je voudrais faire en gros c'est un petit s.replace('\\', '\') mais malheureusement ça lève une SyntaxError (eh oui le dernier guillemet simple est échappé !). J'ai déjà essayé plusieurs alternatives comme l'unicode avec '\x5c' (92 en hexadécimal, l'ASCII du backslash) ou encore avec chr et ord. Je suis bloqué par ce problème un peu idiot depuis 2h… :°

Merci d'avance,

AZ.

Pour compléter ma remarque sur le soucis de cette façon de faire, j'imagine que tu va lancer les remplacement de chaque caractères un à un. Imagine que tu as le texte suivant "\\n" dans un tel cas le résultat devrait être "\n". Or si tu fais simplement des recherches et remplacement sur l'ensemble indépendamment les unes des autres, ça ne marchera pas. Si tu veux le faire proprement il n'y a pas vraiment d'autres choix de parcourir la chaine caractère après caractère.

Mais comme bien souvent pour un truc si commun que ça, il y a déjà ça dans la lib standard. En python 3 par exemple :

1
2
3
4
5
6
>>> a= r"blabla\\ntrucmush"
>>> a
'blabla\\\\ntrucmush'
>>> b=bytes(a, "utf-8").decode("unicode_escape")
>>> b
'blabla\\ntrucmush'
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte