2015-04-02 11 views
5

Mam arabski ciąg z angielskim tekstem i znakami interpunkcyjnymi. Potrzebuję filtrować tekst arabski i próbowałem usuwać znaki interpunkcyjne i angielskie za pomocą żądła. Jednak straciłem odstępy między arabskimi słowami. Gdzie się mylę?Jak usunąć tekst w języku angielskim z łańcucha arabskiego w 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 
وزارةالداخليةلاتتوفرلدينامعلوماترسميةعنسعوديينموقوفينفيليبيا 

Jestem w stanie usunąć interpunkcję i tekst w języku angielskim, ale straciłem odstęp między słowami. Jak mogę zachować każde słowo?

Odpowiedz

5

można zapisać przestrzenie w Twojej ciąg za pomocą

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

lub

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

Pozwoli to sprawdzić, czy znak jest miejsce, jeśli nie to będzie sprawdzić, czy jest do druku.

4

można zatrzymać jej usuwając spacje następująco:

n = filter(lambda x: x in string.whitespace or x not in string.printable, n) 
Powiązane problemy