python删除字符串中的图像只获取字母和数字

时间:2017-05-20 02:20:14

标签: python string parsing

我编写了一个python程序来获取一个字符串,并发现某些字符串中有图像,例如:或“Siempreendíadela Madrelapasábamosasítodosen familia dandomuchocariñoanuestra preciosa madre pero hoy la vamos a pasarsolosextrañandomamaraperosiemprellevándolaennuestroscorazones❤“。

我想从字符串中删除这些图像,只获取数字和字母。

请注意:这些字符串不仅用英文书写,还可以用各种语言书写(例如:阿拉伯语或日语)。

我的节目:

    for post_item in group_member_posts_list:
        if post_item['post_content']:
            post_item_content_str = post_item['post_content']
            print("post_item_content_str:" + post_item_content_str)
            post_item_content_str = filter(str.isalnum,post_item_content_str)
            print("after filter post_item_content_str:" + post_item_content_str )
            b = TextBlob(post_item_content_str)
            post_item_content_type = b.detect_language()

我尝试使用过滤功能,但它会出错。 isalnum函数只能找到英文字母。

你能告诉我如何解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

通过图片,我相信你的意思是emojis(),你可以简单地使用re.sub从你的字符串中替换它们。

import re
emoji_finder = re.compile('[\U0001F300-\U0001F64F\U0001F680-\U0001F6FF\u2600-\u26FF\u2700-\u27BF]+')

tcase_1 =  "Siempre en día de la Madre la pasábamos así todos en familia dando mucho cariño a nuestra preciosa madre pero hoy la vamos a pasar solos extrañando a mamá pero siempre llevándola en nuestros corazones❤"

tcase_2 = "between"

print(re.sub(emoji_finder, "", tcase_1))
print(re.sub(emoji_finder, "", tcase_2))

输出:

Siempre en día de la Madre la pasábamos así 
todos en familia dando mucho cariño a nuestra 
preciosa madre pero hoy la vamos a pasar 
solos extrañando a mamá pero siempre 
llevándola en nuestros corazones

# and

between

在此测试:https://repl.it/IIWG

改编自post并修改为支持python 3。