如何删除或过滤列表中的非英语(汉语、韩语、日语、阿拉伯语)字符串?

2024-09-25 10:24:52 发布

您现在位置:Python中文网/ 问答频道 /正文

以下是一个输入示例:

['ARTA Travel Group', 'Arta | آرتا', 'ARTAS™ Practice Development',    'ArtBinder', 'Arte Arac Takip App', 'アート建築', 'Arte Brasil Bar &    Grill', 'ArtPod Stage', 'Artpollo扫码', 'Artpollo阿波罗-价值最优的艺术品投资电商',    '아트홀']

像上面的列表一样,我想删除带有中文、韩文、日文和ARBIC的元素

以下是预期输出(仅英文):

['ARTA Travel Group', 'ARTAS™ Practice Development', 'ArtBinder', 'Arte Arac Takip App', 'Arte Brasil Bar & Grill', 'ArtPod Stage']

Tags: appgroupbardevelopmentbrasiltravelpracticegrill
3条回答

对不起,我不能评论这篇文章,因为声誉锁定,但在这里

这个问题在这里得到了回答

希望这有帮助

使用正则表达式。将所需的字符放入正则表达式

c = ["ab cde", "test", "张三"]
b = filter(lambda x: re.search("[a-zA-Z\s]+",x) is not None, c)

给你一个想法

您可以使用regex并使用unicode范围进行搜索。™ 属于Letterlike Symbols,范围从2100—214F;您可以将它们全部包括在内,也可以只选择特定的

import re

s = ['ARTA Travel Group', 'Arta | آرتا', 'ARTAS™ Practice Development', 'ArtBinder', 'Arte Arac Takip App', 'アート建築', 'Arte Brasil Bar & Grill', 'ArtPod Stage', 'Artpollo扫码', 'Artpollo阿波罗-价值最优的艺术品投资电商', '아트홀']

result = [i for i in s if not re.findall("[^\u0000-\u05C0\u2100-\u214F]+",i)]

print (result)

['ARTA Travel Group', 'ARTAS™ Practice Development', 'ArtBinder', 'Arte Arac Takip App', 'Arte Brasil Bar & Grill', 'ArtPod Stage']

相关问题 更多 >