Regex-Ersetzungsmethode in Python

Muhammad Waiz Khan 18 Juli 2021
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

Verwandter Artikel - Python Regex