2015-04-02 150 views
5

我有一個英文文本和標點的阿拉伯文字符串。我需要過濾阿拉伯語文本,並嘗試使用刺痛刪除標點符號和英語單詞。但是,我失去了阿拉伯語單詞之間的空白。我錯在哪裏?如何從python中的阿拉伯文字符串中刪除英文文本?

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 
وزارةالداخليةلاتتوفرلدينامعلوماترسميةعنسعوديينموقوفينفيليبيا 

我能夠刪除標點符號和英文文本,但我失去了單詞之間的空間。我怎樣才能保留每一個字?

回答

5

您可以通過使用

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

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

這將檢查如果字符是空間保存在字符串中的空格,如果沒有,那麼它會檢查它是否可打印。

4

您可以刪除任何空白如下停止:

n = filter(lambda x: x in string.whitespace or x not in string.printable, n) 
相關問題