26 Aralık 2008, Cuma
unicode python ve düzenli ifade
Dize bazı unicode sembolleri silmek istiyorum 'بِسْمِ اللَّهِ الرَّحِيمِ الرَّحْمَٰنِ'
Burada kesinlikle var olduklarını biliyorum. Ben deneyin:
re.sub('([\u064B-\u0652\u06D4\u0670\u0674\u06D5-\u06ED] )', '', 'بِسْمِ اللَّهِ الرَّحْمَٰنِ الرَّحِيمِ')
ama çalışmıyor. Dize aynı kalır. ben yanlış ne karınca öneri?
CEVAP
26 Aralık 2008, Cuma
Python 2 kullanıyorsunuz.x veya 3.0?
2 kullanıyorsanız.x, düzenli ifade dize yapmayı deneyin bir unicode kaçış,''. u dize ile İyi antreman düzenli ham bir dize yapmak için düzenli olduğu için,''. r Ayrıca, parantez içinde tüm desen koymak gereksiz.
re.sub(ur'[\u064B-\u0652\u06D4\u0670\u0674\u06D5-\u06ED] ', '', ...)
http://docs.python.org/tutorial/introduction.html#unicode-strings
Düzenleme:
Ayrıca yeniden kullanım için iyi bir uygulamadır.UNİCODE/re.U/(?u) unicode yukarıdaki diyagram için bayrak, ama sadece \w bu desen kullanmaz ve bu yüzden etkilenmez \b gibi karakter sınıf diğer etkiler.
Bunu Paylaş:
Nasıl Python düzenli ifade eşleşen tüm...
Nasıl Python düzenli bir ifade ile bir...
(Python) - daha basit bir yol yerine d...
Python: düzenli ifade ile Değiştirin...
Maç Pozisyonları Nasıl Python Düzenli ...