J'ai des cordes que je veux supprimer certains personnages indésirables d'eux.
Par exemple: adam'sapple ----> AdamsApple code>. (Case insensible)
Quelqu'un peut m'aider, j'ai besoin du moyen le plus rapide de le faire, car j'ai quelques millions de documents qui doivent être polis.
Merci p>
9 Réponses :
Un moyen simple: ... ou jeter un coup d'oeil à
Essayez: une étape En outre, pour remplacer plusieurs caractères sans rien: p> ab
str.replace("'","");
Tous les caractères de la 2e argument du Traduire A> Méthode est supprimé: >>> "Adam's Apple!".translate(None,"'!")
'Adams Apple'
Je pourrais être utile de mentionner explicitement string.maketrans ('' ',' ') code> comme substitut de
Aucun code> pour Python <2.6
Six fois plus vite que "". Joindre (Char pour Char in Text si vous n'avez pas dans Bad_chars) Code> :)
Comme il a été signalé plusieurs fois maintenant, vous devez soit utiliser remplacer code> ou des expressions régulières (plus probablement que vous n'avez pas besoin de regexes cependant), mais si vous devez également vous assurer que le La chaîne résultante est la nature ASCII (ne contient pas de caractères funky comme ©, ò, μ, Ã| ou φ), vous pouvez enfin faire
>>> u'(like é, ò, µ, æ or Ï)'.encode('ascii', 'ignore')
'(like , , , or )'
Voici une fonction qui supprime tous les caractères ASCII irritants, la seule exception est "&" qui est remplacée par "et". Je l'utilise pour policier un système de fichiers et assurez-vous que tous les fichiers adhérent au schéma de dénomination de fichiers, j'insiste à tous.
def cleanString(incomingString): newstring = incomingString newstring = newstring.replace("!","") newstring = newstring.replace("@","") newstring = newstring.replace("#","") newstring = newstring.replace("$","") newstring = newstring.replace("%","") newstring = newstring.replace("^","") newstring = newstring.replace("&","and") newstring = newstring.replace("*","") newstring = newstring.replace("(","") newstring = newstring.replace(")","") newstring = newstring.replace("+","") newstring = newstring.replace("=","") newstring = newstring.replace("?","") newstring = newstring.replace("\'","") newstring = newstring.replace("\"","") newstring = newstring.replace("{","") newstring = newstring.replace("}","") newstring = newstring.replace("[","") newstring = newstring.replace("]","") newstring = newstring.replace("<","") newstring = newstring.replace(">","") newstring = newstring.replace("~","") newstring = newstring.replace("`","") newstring = newstring.replace(":","") newstring = newstring.replace(";","") newstring = newstring.replace("|","") newstring = newstring.replace("\\","") newstring = newstring.replace("/","") return newstring
C'était avant que je suis arrivé dans des expressions régulières, fondamentalement l'équivalent du code de ma phase gothmatique embarcaire. Bien que, cela permet à la non-formée de faire des modifications, ce qui est à peu près une nécessité dans mon travail.
Une alternative qui prendra une chaîne et une gamme de caractères indésirables
Disons que nous avons la liste suivante: Nous définirons maintenant une fonction Lorsque nous appelons la fonction Le résultat ressemblera à: p> clean_strings () code> p>
propre_strings (états) code> p>
Je suis probablement en retard pour la réponse, mais je pense que ci-dessous le code ferait également (à une extrême extrême)
Il supprimera tous les caractères non anormaux: qui donnera p> 'Niraj Kale 984WYWN sur 2 2 2017' P>
blockQuote> p>
Pourriez-vous être plus précis? Quels personnages exacts voulez-vous supprimer?