6
votes

Supprimer des personnages indésirables d'une corde en python

J'ai des cordes que je veux supprimer certains personnages indésirables d'eux. Par exemple: adam'sapple ----> AdamsApple . (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


1 commentaires

Pourriez-vous être plus précis? Quels personnages exacts voulez-vous supprimer?


9 Réponses :


6
votes

Un moyen simple: xxx

... ou jeter un coup d'oeil à SUBSTANTITUTIONS REGEX .


0 commentaires

2
votes

Essayez: xxx pré>

une étape En outre, pour remplacer plusieurs caractères sans rien: p>

ab


0 commentaires

1
votes
str.replace("'","");

0 commentaires

5
votes

2 commentaires

Je pourrais être utile de mentionner explicitement string.maketrans ('' ',' ') comme substitut de Aucun pour Python <2.6


Six fois plus vite que "". Joindre (Char pour Char in Text si vous n'avez pas dans Bad_chars) :)



1
votes

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 )'


0 commentaires

6
votes

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


1 commentaires

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.



0
votes

Une alternative qui prendra une chaîne et une gamme de caractères indésirables xxx


0 commentaires

0
votes

Disons que nous avons la liste suivante: xxx

Nous définirons maintenant une fonction clean_strings () xxx

Lorsque nous appelons la fonction propre_strings (états)

Le résultat ressemblera à: xxx


0 commentaires

0
votes

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: xxx

qui donnera

'Niraj Kale 984WYWN sur 2 2 2017'


0 commentaires