J'ai une chaîne de caractères avec laquelle je veux remplacer tout caractère qui n'est pas un caractère standard ou un nombre tel que (a-z ou 0-9) par un astérisque. Par exemple, "h^&ell`.,|o w]{+orld" est remplacé par "h*ell*o*w*orld". Notez que les caractères multiples tels que "^&" sont remplacés par un astérisque. Comment dois-je m'y prendre ?
Réponses
Trop de publicités?
baloan
Points
43
Don
Points
5574
psun
Points
335
Utilisez \W
ce qui est équivalent à [^a-zA-Z0-9_]
. Vérifiez la documentation, https://docs.python.org/2/library/re.html
import re
s = 'h^&ell`.,|o w]{+orld'
replaced_string = re.sub(r'\W+', '*', s)
output: 'h*ell*o*w*orld'
mise à jour : Cette solution exclura également les tirets bas. Si vous souhaitez que seuls les alphabets et les chiffres soient exclus, la solution de nneonneo est plus appropriée.