2015-04-02 23 views
5

İngilizce metin ve noktalama işaretleri olan bir Arapça dizgim var. Arapça metinleri filtrelemem gerekiyor ve noktalama ve İngilizce kelimeleri sting kullanarak kaldırmaya çalıştım. Ancak, Arapça kelimeler arasındaki boşlukları kaybettim. Nerede yanlışım?Python'da arapça dizinden ingilizce metin nasıl kaldırılır?

import string 
exclude = set(string.punctuation) 

main_text = "وزارة الداخلية: لا تتوفر لدينا معلومات رسمية عن سعوديين موقوفين في ليبيا http://alriyadh.com/1031499" 
main_text = ''.join(ch for ch in main_text if ch not in exclude) 
[output after this step="وزارة الداخلية لا تتوفر لدينا معلومات رسمية عن سعوديين موقوفين في ليبيا httpalriyadhcom1031499]" 
n = filter(lambda x: x not in string.printable, n) 
print n 
وزارةالداخليةلاتتوفرلدينامعلوماترسميةعنسعوديينموقوفينفيليبيا 

Ben noktalama işareti ve ingilizce metni kaldırmak mümkün ama ben kelimelerin arasında boşluk kaybetti. Her bir kelimeyi nasıl saklayabilirim? yazdırılabilir ise onu kontrol eder eğer yapmazsan

cevap

5

Sen, karakter boşluk ise bu kontrol edecek

n = filter(lambda x: True if x==' ' else x not in string.printable , main_text) 

veya

n = filter(lambda x: x==' ' or x not in string.printable , main_text) 

kullanarak dize boşluk kaydedebilirsiniz. aşağıdaki gibi

4

herhangi boşluk çıkarmadan onu durduramaz:

n = filter(lambda x: x in string.whitespace or x not in string.printable, n) 
İlgili konular