Регулярные выражения, фунция string.ascii_letters

Как сделать так, чтобы функция string.ascii_letters не трогала пробелы

import string
s = '321eqweds***! .1dewq'
result = ''.join(c for c in s if c in string.ascii_letters)
print(result)

Выведет на экран: eqwedsdewq А нужно что бы : eqweds dewq


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

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

Регулярка:

  • [^a-z ] поиск символов, что не относятся к диапазону от a до z и к пробелу ()

Пример:

import re

text = '321eqweds***! .1dewq'

new_text = re.sub('[^a-z ]', '', text)
print(new_text)
# eqweds dewq
→ Ссылка