如何从python中的阿拉伯字符串中删除英文文本? [英] How to remove english text from arabic string in python?

查看:112
本文介绍了如何从python中的阿拉伯字符串中删除英文文本?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个带有英文文本和标点符号的阿拉伯字符串.我需要过滤阿拉伯文本,并尝试使用sting删除标点符号和英语单词.但是,我失去了阿拉伯语单词之间的间距.我哪里错了?

I have an Arabic string with English text and punctuations. I need to filter Arabic text and I tried removing punctuations and English words using sting. However, I lost the spacing between Arabic words. Where am I wrong?

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

我能够删除标点符号和英文文本,但是我失去了单词之间的空格.我该如何保留每个单词?

I am able to remove punctuations and english text but I lost the space between words. How can I retain each words?

推荐答案

您可以使用

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)

这将检查字符是否为空格,如果不是,则将检查其是否可打印.

This will check if the character is space, if not then it will check if it is printable.

这篇关于如何从python中的阿拉伯字符串中删除英文文本?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆