Wie geht die Funktion „ReplaceAllString' von Go mit Rückverweisen und Variablenverweisen in Ersetzungszeichenfolgen um?

Barbara Streisand
Freigeben: 2024-11-01 23:34:29
Original
159 Leute haben es durchsucht

How does Go's ReplaceAllString function handle backreferences and variable references in replacement strings?

Go ReplacementAllString Decoded

Die Funktion „ReplaceAllString“ in Go ermöglicht das Ersetzen übereinstimmender Teilzeichenfolgen innerhalb einer bestimmten Eingabezeichenfolge. Betrachten Sie den folgenden Codeausschnitt:

<code class="go">re := regexp.MustCompile("a(x*)b")
fmt.Println(re.ReplaceAllString("-ab-axxb-", "T"))
fmt.Println(re.ReplaceAllString("-ab-axxb-", ""))
fmt.Println(re.ReplaceAllString("-ab-axxb-", "W"))
fmt.Println(re.ReplaceAllString("-ab-axxb-", "W"))</code>
Nach dem Login kopieren

Ausgabe:

-T-T-
--xx-
---
-W-xxW-
Nach dem Login kopieren

Erklärung:

2 . -ab-axxb- ersetzt durch $1 (RemoveAllString-Beispiel)

Dies ersetzt die übereinstimmenden Teilzeichenfolgen durch den Inhalt der ersten einfangenden Gruppe im regulären Ausdruck. In diesem Fall stimmt die einfangende Gruppe mit den Zeichen zwischen a und b überein, sodass die Ausgabe -xx- ist.

3. -ab-axxb- ersetzt durch $1W (RemoveAllString-Beispiel)

Diese Ersetzung verwendet die $1-Rückreferenz, um die übereinstimmende Teilzeichenfolge zu identifizieren, hängt aber „W“ daran an. Da der reguläre Ausdruck jedoch keine einfangende Gruppe mit dem Namen 1W hat, ist die $1W-Referenz leer. Folglich ist die Ausgabe ---.

4. -ab-axxb- ersetzt durch ${1}W (RemoveAllString-Beispiel)

Diese Ersetzung ähnelt der vorherigen, verwendet jedoch geschweifte Klammern um die Rückreferenz ($1). Laut der Expand-Dokumentation werden geschweifte Klammern verwendet, um einen Variablenverweis und keinen Rückverweis zu kennzeichnen. Da 1 im regulären Ausdruck keine Variable ist, lautet die Ausgabe -W-xxW-.

Das obige ist der detaillierte Inhalt vonWie geht die Funktion „ReplaceAllString' von Go mit Rückverweisen und Variablenverweisen in Ersetzungszeichenfolgen um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!