помогите решить задачку. Условие ниже

Вам дано предложение: s = "There is some numbers: 49 and 432. How, to? split. text! I 123 can 45 play 67 football.". С помощью библиотеки re вам нужно из исходного предложения удалить всё кроме слов, точки, восклицательного знака и знака вопроса. Слова и наши знаки окончания предложения должны быть разделены пробелом. Символы приведены к нижнему регистру. Используйте метод sub или findall. вот тут моя попытка сделать это самостоятельно:

import re
s=input()
s=s.lower()
re = re.sub("[49325671,:]", '', s)
res = ''.join(map(lambda ch: ch+' ', re))
print(res)

Ответы (1 шт):

Автор решения: Dmitry

Ну, что, ж, следуя вашей логике:

import re
s = "There is some numbers: 49 and 432. How, to? split. text! I 123 can 45 play 67 football."
s = s.lower()
pattern = r":?\s\d{1,}|,"
# буквально значит "двоеточие (ноль или больше раз), пробельный символ, любая цифра (один или более раз) ИЛИ запятая
t = re.sub(pattern, "", s)

и как результат имеем:

>>> t
'there is some numbers and. how to? split. text! i can play football.'
→ Ссылка