Heim  >  Artikel  >  Backend-Entwicklung  >  Wie füge ich eine Zahl nach einer Gruppenübereinstimmung mit „re.sub()“ in Python ein?

Wie füge ich eine Zahl nach einer Gruppenübereinstimmung mit „re.sub()“ in Python ein?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-03 08:43:291047Durchsuche

How to Insert a Number After a Group Match using `re.sub()` in Python?

Einfügen einer Zahl nach einer Gruppenübereinstimmung in Python re.sub

In Python ermöglicht die Funktion re.sub() das Ersetzen von Teilzeichenfolgen in einer bestimmten Zeichenfolge. Eine häufige Herausforderung besteht darin, eine Gruppenübereinstimmung durch eine andere Gruppe gefolgt von einer bestimmten Zahl zu ersetzen.

Betrachten Sie zur Veranschaulichung die Aufgabe, „foobar“ durch „foo123bar“ zu ersetzen. Der Versuch, dies mit einem einfachen Ausdruck wie re.sub(r'(foo)', r'1123', 'foobar') zu versuchen, führt leider stattdessen zu „J3bar“.

Der Schlüssel zur Lösung dieses Problems liegt in der Verwendung benannte Capture-Gruppen, die die Referenzierung von Gruppenübereinstimmungen anhand der im regulären Ausdruck zugewiesenen Namen ermöglichen. Mit der Syntax (?P...) können wir eine benannte Capture-Gruppe für den zu ersetzenden Teilstring definieren.

Um die gewünschte Ersetzung zu erreichen, müssen wir die spezielle Syntax g um auf die benannte Capture-Gruppe „foo“ zu verweisen.

Der korrigierte reguläre Ausdruck wäre:

<code class="python">re.sub(r'(?P<foo>foo)', r'\g<foo>123', 'foobar')</code>

Mit diesem Ausdruck fügt die Ersetzung korrekt „123“ nach der Gruppenübereinstimmung „foo“ ein , was die erwartete Ausgabe „foo123bar“ ergibt.

Das obige ist der detaillierte Inhalt vonWie füge ich eine Zahl nach einer Gruppenübereinstimmung mit „re.sub()“ in Python ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn