Ho una stringa con cui voglio sostituire qualsiasi carattere che non sia un carattere standard o un numero come (a-z o 0-9) con un asterisco. Ad esempio, "h^& ell`., | Ow] {+ orld" è sostituito da "h * ell * o * w * orld". Nota che più caratteri come "^ &" vengono sostituiti con un asterisco. Come potrei fare questo?Sostituisci tutti i caratteri non alfanumerici in una stringa
risposta
Regex al salvataggio!
import re
s = re.sub('[^0-9a-zA-Z]+', '*', s)
Esempio:
>>> re.sub('[^0-9a-zA-Z]+', '*', 'h^&ell`.,|o w]{+orld')
'h*ell*o*w*orld'
Se si gestisce molto l'unicode, potrebbe essere necessario conservare tutti i simboli Unicode non ASCII: 're.sub (" [\ x00- \ x2F \ x3A- \ x40 \ x5B- \ x60 \ x7B- \ x7F] + "," ",":% # unicode ΣΘΙП @./\ n ")' – zhazha
Se vuoi mantenere degli spazi nella stringa, aggiungi uno spazio tra parentesi: s = re .sub ('[^ 0-9a-zA-Z] +', '*', s) – stackPusher
Il modo divinatorio.
print "".join([ c if c.isalnum() else "*" for c in s ])
Questo non riguarda un raggruppamento di più caratteri non corrispondenti consecutivi però, cioè
"h^&i => "h**i
non "h*i"
come nelle soluzioni regex.
Prova:
s = filter(str.isalnum, s)
Edit: capito che il PO vuole sostituire i non-caratteri con '*'. La mia risposta non si adatta
Utilizzare \W
che include tutti i non-alfanumerali [a-zA-Z0-9]. Controllare la documentazione, https://docs.python.org/2/library/re.html
Import re
replaced_string = re.sub('\W+', '*', 'h^&ell`.,|o w]{+orld')
output: 'h*ell*o*w*orld'
- 1. Sostituisci tutti i caratteri non parola come? * + #
- 2. Come rimuovere tutti i caratteri non alfanumerici e non spaziali da una stringa in PHP?
- 3. Rimuovere tutti i caratteri non alfanumerici utilizzando preg_replace
- 4. Come rimuovere tutti i caratteri non alfanumerici da una stringa tranne periodo e spazio in Excel?
- 5. Come tagliare tutti i caratteri non alfanumerici dall'inizio e alla fine di una stringa in Javascript?
- 6. Espressione regolare PHP - Rimuovi tutti i caratteri non alfanumerici
- 7. Come rimuovere caratteri non alfanumerici?
- 8. Sostituisci più caratteri in una stringa
- 9. Come determinare se una stringa ha caratteri non alfanumerici?
- 10. Sostituisci caratteri non ascii da una stringa unicode in Python
- 11. Come si rimuovono caratteri non alfanumerici (compresi gli spazi) da una stringa?
- 12. Caratteri non alfanumerici di striscia dall'inglese UTF8 + stringa inglese
- 13. R rimuovere i simboli non alfanumerici da una stringa
- 14. Sostituisci caratteri non numerici
- 15. Sostituisci caratteri in NSString
- 16. Trova e sostituisci tutti i caratteri speciali in SQL
- 17. Sostituisci più caratteri in una stringa in javascript
- 18. Come ottenere tutti i caratteri dopo l'ultimo '-' in una stringa
- 19. Sostituisci tutti i campi in MySQL
- 20. Rimuovere tutti i caratteri speciali da una stringa in R?
- 21. escludendo tutti i caratteri di una stringa, lasciando i numeri
- 22. Rimuovere tutti i "caratteri word" non da una stringa in Java, lasciando caratteri accentati?
- 23. Un modo elegante per contare i caratteri alfanumerici in una stringa?
- 24. Qual è il modo più veloce di rimuovere caratteri non alfanumerici da una stringa in Delphi7?
- 25. vim: sostituisci tutti i caratteri fino a un determinato token
- 26. Regexp partita tutti i caratteri maiuscoli, tranne una particolare stringa
- 27. Test stringa di testo UITextField per contenere solo caratteri alfanumerici
- 28. Rimuovi tutti i caratteri non ASCII dalla stringa
- 29. Come rimuovere tutti i caratteri da una stringa
- 30. Sostituisci newline in una stringa Unicode
Eventuali duplicati di [Spogliarello tutto, ma caratteri alfanumerici da una stringa in Python] (http://stackoverflow.com/questions/1276764/stripping-everything-but-alphanumeric-chars-from -a-string-in-python) – sds