Her iki dilden oluşan sözcük dizisi (İngilizce, Fransızca, vb) ve dilleri olmayan (Çince, Japonca, Korece) dillerden oluşan dizelerim var.Python: bu "melez" bölmeyi() çok dilli (ör. Çince ve İngilizce) dizeler üzerinde gerçekleştirmenin herhangi bir yolu var mı?
Böyle bir dize verildiğinde, İngilizce/Fransızca/etc kısmını ayırıcı olarak boşluk kullanarak sözcüklere ayırmak ve Çince/Japonca/Korece parçayı ayrı karakterlere ayırmak istiyorum.
Ve bu tüm ayrılmış bileşenleri bir listeye koymak istiyorum.
Durum 1: Sadece İngilizce dize
bazı örnekler muhtemelen bu net hale getirecektir. Bu durum kolaydır:
>>> "I love Python".split()
['I', 'love', 'Python']
Durum 2: Çin okunur dize:
>>> list(u"我爱蟒蛇")
[u'\u6211', u'\u7231', u'\u87d2', u'\u86c7']
Bu durumda ben Çince karakterler bir liste halinde dize açabilirsiniz. Ama liste içinde ben unicode temsillerini alıyorum:
[u'\u6211', u'\u7231', u'\u87d2', u'\u86c7']
nasıl gerçek karakterleri yerine unicode görüntülemek için alabilirim? Bir şey gibi:
['我', '爱', '蟒', '蛇']
??
Vaka 3: İngiliz & Çince bir karışımı:
ben bir giriş dizesi gibi
"我爱Python"
açmak istiyor ve bunun gibi bir listeye haline döner:
['我', '爱', 'Python']
Böyle bir şey yapmak mümkün mü?
Maalesef Python'un akımına bir misfeature var sıfır uzunluklu eşleşmelerde bölünmek için re.split() öğesini engelleyen modül: http://stackoverflow.com/questions/2713060/why-doesnt-pythons-re-split-split-on-zero-length -matches - bu nedenle doğrudan doğruya Python'da normal ifadeleri kullanamazsınız. –
Korece, sözcük ayırma için boşluk kullanır. – Leovt