Regex-Ersetzungsmethode in Python
In diesem Tutorial werden wir die Verwendung und Funktion der Methode re.sub()
untersuchen und die Beispielcodes untersuchen. Das Python-Modul re
bietet die verschiedenen Funktionen unter Verwendung regulärer Ausdrücke für Unicode- und 8-Bit-Zeichenketten. Die Funktionen umfassen das Ersetzen, Teilen und Anpassen von Zeichenketten usw.
Regex-Ersetzen mit der Methode re.sub()
in Python
Die Methode re.sub(pattern, repl, string, count=0)
verwendet den string
als Eingabe und ersetzt die am weitesten links stehenden Vorkommen des pattern
durch das repl
. Wird im Argument string
kein pattern
gefunden, wird der string
unverändert zurückgegeben.
Das Argument pattern
muss in Form eines regulären Ausdrucks vorliegen. Die repl
kann eine Zeichenkette oder eine Funktion sein. Wenn das Argument repl
eine Zeichenkette ist, wird das pattern
in der Zeichenkette string
durch die Zeichenkette repl
ersetzt. Wenn eine Funktion als repl
-Argument übergeben wird, wird die Funktion immer dann aufgerufen, wenn ein Auftreten des pattern
gefunden wird. Die Funktion nimmt das matchObject
als Eingabe und gibt die ErsatzZeichenkette zurück. Das matchObject
hat den Wert True
, wenn die Übereinstimmung gefunden wird, und ansonsten den Wert None
.
Das optionale Argument count
repräsentiert das maximale Vorkommen des pattern
, das wir in der string
ersetzen möchten.
Der folgende Beispielcode zeigt, wie mit der Methode re.sub()
ein Muster aus der Zeichenkette mithilfe des regulären Ausdrucks ersetzt wird:
import re
string = "Hello! How are you?! Where have you been?!"
new_string = re.sub(r"""[!?'".<>(){}@%&*/[/]""", " ", string)
print(new_string)
Ausgabe:
Hello How are you Where have you been
Das obige Codebeispiel entfernt die im Argument pattern
angegebenen Zeichen durch das Leerzeichen, das unser Argument repl
im obigen Code ist.
Wir können die Funktion auch als repl
-Argument verwenden, um dieselbe Aufgabe auszuführen, indem wir " "
zurückgeben, wenn ein Auftreten des repl
-Arguments gefunden wird, wie im folgenden Beispielcode gezeigt:
import re
def repl_func(match):
if match == True:
return " "
string = "Hello! How are you?! Where have you been?!"
new_string = re.sub(r"""[!?'".<>(){}@%&*/[/]""", repl_func, string)
print(new_string)
Ausgabe:
Hello How are you Where have you been