Als fortgeschrittenes Verwendungsbeispiel der “re sub”-Bibliothek und Funktionsmethode in der Python-Programmiersprache gibt es eine Technik, eine Funktion als Callback zu übergeben, um Verarbeitung durchzuführen. Dies ermöglicht erweiterte Ersetzungsverarbeitung, die mit nur normaler regulärer Ausdrucks-Ersetzungsverarbeitung nicht möglich ist.
In re.sub ist die Syntax wie re.sub([regulärer Ausdruck], [Ersetzung], [Text]), aber Sie möchten den “Ersetzung”-Teil programmierbar machen und ändern, unter Verwendung des Gruppen-Matches des Teils, der vom “regulären Ausdruck” gematcht wird.
In solchen Fällen können Sie eine Funktion oder Lambda an “Ersetzung” wie folgt übergeben:
(Funktion)
import re
number_mapping = {'1': 'one',
'2': 'two',
'3': 'three'}
def callback(x):
return number_mapping[x.group()]
print re.sub(r'\d', callback, "1 testing 2 3")
one testing two three
(Lambda)
import re
number_mapping = {'1': 'one',
'2': 'two',
'3': 'three'}
print re.sub(r'\d', lambda x: number_mapping[x.group()], "1 testing 2 3")
one testing two three
regex - Passing a function to re.sub in Python - Stack Overflow regex - Using a regular expression to replace upper case repeated letters in python with a single lowercase letter - Stack Overflow