Как правильно написать фильтр текста
Нужна помощь: нужно отфильтровать список с текстом, который будет через итератор отправляться в переводчик, но периодически попадают строки, в которых есть знаки, но нет текста. И если его отправить в переводчик, то произойдет ошибка. Нужно, чтобы сохранились только те элементы, которые содержат в себе текст, при этом не навредив знакам. Например:
compile = re.compile("\w")
chapter = list(filter(compile.match, oldchapter))
Но в таком случае сохраняются только те элементы, которые содержат в себе текст, но если там буду знаки то пропускаются
Ответы (2 шт):
Считываете построчно текст?
Не совсем понятна проблема: анализируйте своей регуляркой строку и если в ней есть текст, то отправляйте ее целиком в переводчик со всеми "знаками" без фильтрации.
Нужно просто заменить match() на search(), поскольку match() сравнивает строку с шаблоном с начала строки, а search() - с любого места строки.
compile = re.compile("\w")
oldchapter = ['! abra kadabra !', '@ # $', 'всякая всячина', '%$%$%']
chapter = list(filter(compile.search, oldchapter))
print(chapter)
['! abra kadabra !', 'всякая всячина']