Вы можете использовать re.sub
:
import re
array= ['AB.01.001 Hello','BA.10.004','CD.10.015 Good bye']
regex = re.compile(r'[A-Z]{2,3}\.[0-9]{2}\.[0-9]{3}\s*')
filtered = filter(None, map(lambda i: regex.sub('', i), array))
print(list(filtered))
# => ['Hello', 'Good bye']
См. Демонстрационную версию Python .
Примечание. Я использовал только одну \
для выхода из буквальных точек (поскольку вы используете необработанный строковый литерал для определения регулярного выражения) и добавили \s*
, чтобы также удалить любые 0 или более пробелов после вашего шаблона.
Подробности
map(lambda i: regex.sub('', i), array)
- перебирает элементы array
и удаляет совпадения с помощью re.sub
filter(None, ...)
удаляет пустые элементы, полученные в результате подстановки, когда шаблон соответствует всей строке.