Как удалить или отфильтровать неанглийские (китайские, корейские, японские, арабские) строки в списке?

Вот пример ввода:

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

Как и в приведенном выше списке, я хочу удалить элементы с КИТАЙСКИМ, КОРЕЙСКИМ, ЯПОНСКИМ, АРБИЧЕСКИМ.

И ниже ожидаемый результат (только на английском языке):

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

person ssw101    schedule 11.05.2020    source источник
comment
что ты уже испробовал? См. как спросить.   -  person 10 Rep    schedule 11.05.2020


Ответы (3)


Вы можете использовать regex и искать в диапазоне юникода. ™ относится к буквенным символам, число которых варьируется от 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']
person Henry Yik    schedule 11.05.2020

Извините, я не могу комментировать этот пост из-за блокировки репутации, но здесь.

Ответ на этот вопрос находится здесь Обнаружение строк с неанглийскими символами в Python

Надеюсь это поможет!

person mallocation    schedule 11.05.2020

использовать регулярное выражение. Поместите символы, необходимые для регулярного выражения

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

просто дать вам идею.

person Zhd Zilin    schedule 11.05.2020
comment
Да, это не прямой ответ на вопрос, это просто дает представление о том, что в регулярное выражение необходимо добавлять специальные символы, и они также не должны работать. - person Zhd Zilin; 11.05.2020