SORU
5 ŞUBAT 2009, PERŞEMBE


Python unicode dizesi aksan kaldırmak için en iyi yolu nedir?

Python Unicode dize var, ve tüm aksanları (aksan) kaldırmak istiyorum.

Web üzerinde şık bir şekilde Java bunu buldum:

  1. uzun normalize formu Unicode dizesi (harfler ve aksanlar için ayrı bir karakter ile) dönüştürmek
  2. olan tüm karakterleri kaldırmak"". aksan

PyİCU gibi bir kütüphane yüklemek gerekiyor mu yoksa sadece python standart kütüphane ile mümkün mü? Ve ne python 3 hakkında?

ÖNEMLİ NOT: kod önlemek için olmayan aksanlı onların muadili aksanlı karakterler açık bir eşleme ile istiyorum.

CEVAP
5 ŞUBAT 2009, PERŞEMBE


Buna ne demeli

import unicodedata
def strip_accents(s):
   return ''.join(c for c in unicodedata.normalize('NFD', s)
                  if unicodedata.category(c) != 'Mn')

Bu Yunan harfleri üzerinde de çalışır:

>>> strip_accents(u"A \u00c0 \u0394 \u038E")
u'A A \u0394 \u03a5'
>>> 

Güncelleme:

character category "M" unicodedata benzer Nonspacing_Mark) kısaltması.MiniQuark cevap birleştirerek (unicodedata düşünmemiştim.birleştirerek, ama daha açık, çünkü muhtemelen daha iyi bir çözüm).

Ve unutmayın, bu işlemler önemli ölçüde metnin anlamını değiştirebilir. , Sesli harfler vs. aksan. "". dekorasyon değildir

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Austin Evans

    Austin Evans

    5 AĞUSTOS 2007
  • Flash CS6 Video Tutorials for Beginners (Actionscript 3 Gaming)

    Flash CS6 Vi

    14 EYLÜL 2012
  • ipsy Makeup Tips

    ipsy Makeup

    19 ŞUBAT 2009