können Sie 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'
verwenden Was sie tut?
\d+
Entspricht einer oder mehreren Ziffern.
(TP|MP)
Übereinstimmungen TP
oder MP
. Erfasst es in \1
. Wir haben diese aufgenommene Zeichenfolge verwendet, um die gesamte übereinstimmende Zeichenfolge zu ersetzen.
Wenn alle Zeichen vor und nach dem TP/MP erscheinen können wir \S
etwas anderes als ein Raum passen können. Zum Beispiel
>>> 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'
bearbeiten
Mit list comprehension, können Sie durch die Liste durchlaufen und ersetzen Sie alle Saiten wie
>>> 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']
auf der Ersatzfunktion des regex Modul einen Blick darauf werfen, [re.sub] (https: // docs .python.org/3.5/library/re.html # re) – Olian04
alles vor und nach TP. Es kann sowohl Zahlen als auch Zeichen enthalten. Dieses Ding 1234578TP43789 sollte in Ausgabe durch TP ersetzt werden. –