Standart karakter olmayan herhangi bir karakteri veya yıldız işareti olan (a-z veya 0-9) gibi bir sayıyı değiştirmek istediğim bir dizilim var. Örneğin, "h^& ell", | o w] {+ orld "," h * ell * o * w * orld "ile değiştirilir. "^ &" gibi birden çok karakterin bir yıldızla değiştirileceğini unutmayın. Bunu yapmak için nasıl giderim?Dize içindeki tüm alfasayısal olmayan karakterleri değiştir
cevap
Kurtarma için düzenli ifadeler!
import re
s = re.sub('[^0-9a-zA-Z]+', '*', s)
Örnek:
>>> re.sub('[^0-9a-zA-Z]+', '*', 'h^&ell`.,|o w]{+orld')
'h*ell*o*w*orld'
Unicode'u çok kullanırsanız, ASCII olmayan tüm unicode sembollerini de saklamanız gerekebilir: "re.sub (" [\ x00- \ x2F \ x3A- \ x40 \ x5B- \ x60 \ x7B- \ x7F] + "," ",":% # unicode ΣΘΙП @./\ n ")' – zhazha
Dizinizde boşluk bırakmak istiyorsanız, köşeli parantez içinde boşluk bırakın: s = re .sub ('[^ 0-9a-zA-Z] +', '*', s) – stackPusher
pythonic yolu.
print "".join([ c if c.isalnum() else "*" for c in s ])
Bu da birden fazla birbirini takip eden olmayan uygun karakter gruplama ile ilgili değildir, yani, normal ifade çözeltiler olarak
"h^&i => "h**i
değildir "h*i"
.
Dene:
s = filter(str.isalnum, s)
Düzenleme: OP olmayan karakter değiştirmek istediği '*' fark etti. Cevabım, tüm alfanümeral olmayanları [a-zA-Z0-9] içeren \W
kullanın
. belgelerini kontrol edin, 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. Dize içindeki karakterleri değiştir
- 2. Tüm kelime olmayan karakterleri değiştir:? * + #
- 3. Arapça'dan olmayan alfasayısal olmayan karakterler karakterleri UTF8 + İngilizce dize
- 4. Bir dizeden alfasayısal olmayan karakterleri kaldırma
- 5. javascript dize içindeki tüm karakterleri silme
- 6. Ruby regex: boşluk karakterleri olmayan sözcük olmayan karakterleri değiştir
- 7. Alfasayısal olmayan veya boşluk karakterleri içeren satırları nasıl arayabilirim?
- 8. Alfasayısal ve diğerlerine bölünmüş dize
- 9. Alfasayısal dışındaki tüm karakterleri ve javascript ile boşlukları kaldır
- 10. Tüm alfasayısal olmayan karakterler Javascript'teki bir dizenin başlangıcı ve bitiminden nasıl kesilir?
- 11. Tüm alfasayısal olmayan karakterler, Excel'de nokta ve alan dışındaki bir dizeden nasıl kaldırılır?
- 12. Tktable içindeki karakterleri gizle
- 13. JS regex: tüm basamakları dize ile değiştir
- 14. Dize içindeki tüm çift tırnak işaretlerini değiştirin
- 15. tüm karakterleri
- 16. Java, sayısal olmayan karakterleri x
- 17. Üçlü olmayan karakterleri değiştirmek için Java regex negatif görünümü
- 18. Taranacak ASCII olmayan karakterleri girme ("% s")
- 19. Tüm satırı değiştir cmd
- 20. Dize içindeki konuma göre değiştirme
- 21. Bir div içindeki tüm öğelerin yazı tipi boyutunu değiştir
- 22. İstenmeyen tüm karakterleri NSCharacterSet
- 23. UITextField Tüm karakterleri gizle
- 24. php tüm karakterleri patlat
- 25. C# içindeki işlem adını değiştir?
- 26. C# dosya içindeki dizeyi değiştir
- 27. Emacs İçindeki Varsayılan Derleyiciyi Değiştir?
- 28. xcode dizedeki son karakterleri dize
- 29. Dize Scala'nın Sonundaki Karakterleri Kaldır
- 30. Dize için boşluk kullanmadan dize içindeki harfleri bulun
([Python bir dizesinden alfanümerik karakter ama her şeyi soyma] Olası yinelenen http://stackoverflow.com/questions/1276764/stripping-everything-but-alphanumeric-chars-from -a-string-in-python) – sds