Попробуйте найти шаблон \b[a-z]+\s*
и замените его пустой строкой:
text = "apply to this bill and are made a part thereof Illam B GEISSLER"
result = re.sub(r'\b[a-z]+\s*', "", text).strip()
print(result)
Это напечатает:
Illam B GEISSLER
Идея шаблона \b[a-z]+\s*
состоит в том, что он соответствуеттолько целые слова , окруженные с обеих сторон границами слов.Обратите внимание, что мы вызываем strip
, чтобы удалить все оставшиеся пробелы.
Еще один тонкий момент заключается в том, что шаблон удаляет все пробелы на RHS каждой соответствующей строчной буквы.Это делается для того, чтобы текст читался, если, например, некоторые совпадающие слова находятся между не совпадающими словами:
text = "United States Of a bunch of states called America"
result = re.sub(r'\b[a-z]+\s*', "", text).strip()
print(result)
Это правильно печатает:
United States Of America