A volte ho delle stringhe con strani personaggi. Non sono visibili nel browser, ma fanno parte della stringa e vengono contati in len(). Come posso liberarmene? Strip() cancella lo spazio normale ma non i segni.Python - come eliminare i segni nascosti dalla stringa?
risposta
Collect set di caratteri che si desidera attivare e rimuovere il resto come questo
import re
text = re.sub("[^a-z0-9]+","", text, flags=re.IGNORECASE)
sarà rimuovere eventuali caratteri diversi da a alla z, dalla A alla Z e da 0 a 9.
Ho bisogno pieni segni utf8 set:/ – robos85
@ robos85, è bisogno di alcune informazioni per spogliare o non spogliare. quindi posso presumere che è necessario rimuovere tutti i caratteri non validi per utf8? c'è una soluzione per questo, ma che potrebbe includere caratteri non visibili/non stampabili. – YOU
Usa le categorie di caratteri dal modulo string
. Se si desidera consentire tutti i caratteri stampabili, si può fare
from string import printable
new_string = ''.join(char for char in the_string if char in printable)
Sulla risposta di voi, si può fare questo con re.sub
troppo:
new_string = re.sub("[^{}]+".format(printable), "", the_string)
Inoltre, se si desidera visualizzare tutti i personaggi in una stringa, anche quelli non stampabili, si può sempre fare
print repr(the_string)
che vi mostrerà le cose come \x00
per i caratteri non stampabili.
Sicuramente questa è la risposta corretta. – dotancohen
La risposta dei secondi ha funzionato come un incanto, grazie. – Yehonatan
Le espressioni regolari sono uno strumento valido e molto universale per tutti i tipi di analisi delle stringhe. Se la velocità è un problema, il metodo "translate" della classe string può aiutarti anche tu.
In primo luogo si definisce una mappatura ('identità'), che non cambierà nulla:
mapping = map(chr, range(256))
se si desidera sostituire ogni "a" da una "b", si modifica la mappatura
mapping[ord('a')] = 'b'
Ora è costruire la tabella per il metodo "tradurre":
table = "".join(mapping)
e
print "abc".translate(table)
stampe "bbc".
Se davvero si vuole cancellare la "a", non si modificano la mappatura di cui sopra, costruire la tabella e quindi chiamare traducono nel seguente modo:
print "abc".translate(table, "a")
ti dà "bc".
Una volta creata la tabella, il metodo di traduzione è molto veloce.
Quindi nel tuo caso è possibile modificare la mappatura in modo tale che tutti i tuoi personaggi indesiderati vengono mappati a uno spazio bianco
mapping = map(chr, range(256))
table = "".join(" " if c in unwanted_chars else c for c in map(chr, range(256)))
e utilizzare len("my string".translate(table).trim())
che ignora i caratteri indesiderati all'inizio e alla fine della stringa.
Oppure si utilizza len("my string".translate(table, unwanted_chars))
che ignorerà tutti i caratteri indesiderati.
Bello. +1 domani quando ho di nuovo voti. Ho pensato a tradurre ma ero troppo pigro per cercare la sintassi. – agf
- 1. Striscia di caratteri nascosti dalla stringa
- 2. Come rimuovere i caratteri nascosti dalla stringa di testo in PHP?
- 3. Come ottenere i nomi delle variabili nominate dalla stringa python
- 4. Python: condizionalmente eliminare elementi dalla lista
- 5. Come rimuovere i numeri dalla stringa usando Regex.Replace?
- 6. Come rimuovere i segni di punteggiatura da una stringa in Python 3.x usando .translate()?
- 7. Come rimuovere i segni diacritici dal testo?
- 8. Come ignorare i file nascosti usando os.listdir()?
- 9. Eliminare l'elemento dalla lista
- 10. Come eliminare tutti i record duplicati dalla tabella SQL?
- 11. stringa Rimuovere tra i 2 caratteri dalla stringa di testo
- 12. open() non funziona per i file nascosti python
- 13. ottenere byte dalla stringa unicode in python
- 14. Come posso grep i file nascosti?
- 15. Come eliminare tutti i caratteri dopo un carattere nella stringa?
- 16. Come si eliminano tutti i segni di punteggiatura iniziali e finali in Python?
- 17. python matplotlib imshow() segni di spunta personalizzati
- 18. Come posso sapere che la mia stringa contiene segni diacritici?
- 19. Come eliminare sezioni dalla tabella statica tableview
- 20. Come eliminare tutti gli articoli dalla lista?
- 21. Come eliminare un record dalla tabella?
- 22. Rimuovi HTML dalla stringa
- 23. Java - Come dividere una stringa su più segni?
- 24. Come utilizzare i valori dei campi nascosti dalla vista al controller in asp.net mvc 3
- 25. come fare segni quadrati vuoti con matplotlib in python
- 26. Come uscire dalla nuova riga dalla stringa
- 27. Rimozione di caratteri nascosti dalle stringhe
- 28. Rimuovere i caratteri duplicati dalla stringa
- 29. PHP rimuovi i simboli dalla stringa
- 30. Come utilizzare i valori stringa al posto delle zecche sulla barra dei segni di WPF?
Vedere questa soluzione: http://stackoverflow.com/questions/92438/stripping-non-printable-characters-from-a-string-in-python –