Вы можете использовать re.sub
>>> string="This is the consignment no 1234578TP43789"
>>> re.sub(r'\d+(TP|MP)\d+', r'\1', string)
'This is the consignment no TP'
>>> string="Consignment no 1234578TP43789 is on its way on vehicle no 3456MP567890"
>>> re.sub(r'\d+(TP|MP)\d+', r'\1', string)
'Consignment no TP is on its way on vehicle no MP'
Что он делает?
\d+
Соответствует одной или нескольким цифрам.
(TP|MP)
Соответствует TP
или MP
. Захватывает его в \1
. Мы использовали эту захваченную строку для замены всей согласованной строки.
Если какой-либо персонаж может появиться до и после того, как TP/MP мы можем использовать \S
, чтобы соответствовать ничего, кроме пространства. Например,
>>> string="Consignment no 1234578TP43789 is on its way on vehicle no 3456MP567890"
>>> re.sub(r'\S+(TP|MP)\S+', r'\1', string)
'Consignment no TP is on its way on vehicle no MP'
Редактировать
Используя list comprehension, вы можете перемещаться по списку и заменить все строки как,
>>> list_1=["TP","MP","DCT"]
>>> list_2=["This is the consignment no 1234578TP43789","Consignment no 1234578TP43789 is on its way on vehicle no 3456MP567890"]
>>> [ re.sub(r'\d+(' + '|'.join(list_1) + ')\d+', r'\1', string) for string in list_2 ]
['This is the consignment no TP', 'Consignment no TP is on its way on vehicle no MP']
взгляните на функцию замещающего модуля регулярных выражений, [re.sub] (https: // документы .python.org/3.5/library/re.html # re.sub) – Olian04
ничего до и после TP. Он может содержать числа и символы. Эта вещь 1234578TP43789 должна быть заменена TP на выходе. –