Konzentrieren Sie sich auf den Ersetzungsvorgang im Regexp-Paket

PHPz
Freigeben: 2023-04-05 09:25:27
Original
687 Leute haben es durchsucht

In der Go-Sprache bietet das Regexp-Paket Unterstützung für reguläre Ausdrücke. Regulärer Ausdruck ist ein Werkzeug zum Beschreiben von Zeichenfolgenmustern durch die Definition einer Reihe von Regeln zum Abgleichen und Bearbeiten von Zeichenfolgen. In diesem Artikel konzentrieren wir uns auf den Ersetzungsvorgang im Regexp-Paket.

Der Ersetzungsvorgang im Regexp-Paket verwendet hauptsächlich die beiden Funktionen ReplacementAllString und ReplacementAllFunc. Sie alle können die angegebene Zeichenfolge ersetzen und nach dem Ersetzen die neue Zeichenfolge zurückgeben.

Das Folgende ist die grundlegende Syntax der Funktion „ReplaceAllString“:

func ReplaceAllString(src, pattern, replace string) string
Nach dem Login kopieren

Unter diesen stellt src die zu ersetzende Zeichenfolge dar, „pattern“ ist der reguläre Ausdruck für die Suche und „replace“ ist die zu ersetzende Zeichenfolge. Das Beispiel sieht wie folgt aus:

package main

import (
    "fmt"
    "regexp"
)

func main() {
    src := "Hello, world! Today is 2021-06-30."
    pattern := `\d{4}-\d{2}-\d{2}`
    replace := "tomorrow"
    
    newStr := regexp.MustCompile(pattern).ReplaceAllString(src, replace)
    fmt.Println(newStr)
}
Nach dem Login kopieren

Das laufende Ergebnis ist:

Hello, world! Today is tomorrow.
Nach dem Login kopieren
Nach dem Login kopieren

Im obigen Beispiel haben wir d{4}-d{2}-d{2} als regulären Ausdruck für die Suche verwendet, der eine Zeichenfolge darstellt, die dem Datumsformat entspricht, z. B. 2021-06-30. Rufen Sie die Funktion „ReplaceAllString“ auf, um den Teil, der dem regulären Ausdruck entspricht, durch „tomorrow“ zu ersetzen.

Zusätzlich zur Funktion „ReplaceAllString“ gibt es auch eine leistungsfähigere Funktion „ReplaceAllFunc“, die eine Funktion als Ersatzwert verwenden kann. Diese Funktion kann eine Ersatzzeichenfolge basierend auf dem übereinstimmenden Inhalt generieren. Das Folgende ist die grundlegende Syntax der Funktion „ReplaceAllFunc“:

func ReplaceAllFunc(src string, re *Regexp, repl func([]byte) []byte) string
Nach dem Login kopieren

Unter diesen stellt src die zu ersetzende Zeichenfolge dar, re ist ein kompilierter regulärer Ausdruck und repl ist eine Funktion, die zum Generieren der Ersetzungszeichenfolge verwendet wird. Diese Funktion empfängt einen Parameter vom Typ []Byte, der den übereinstimmenden Inhalt darstellt, und gibt ein Ergebnis vom Typ []Byte zurück, das den ersetzten Inhalt darstellt.

Das Folgende ist ein Beispielcode, der die Funktion der Verwendung von ReplacementAllFunc zum Implementieren von Ersetzungen zeigt:

package main

import (
    "fmt"
    "regexp"
)

func main() {
    src := "Hello, world! Today is 2021-06-30."
    pattern := `\d{4}-\d{2}-\d{2}`
    
    newStr := regexp.MustCompile(pattern).ReplaceAllFunc([]byte(src), func(matched []byte) []byte {
        // 匹配到的内容为matched
        return []byte("tomorrow")
    })
    
    fmt.Println(string(newStr))
}
Nach dem Login kopieren

Das laufende Ergebnis ist auch:

Hello, world! Today is tomorrow.
Nach dem Login kopieren
Nach dem Login kopieren

Im obigen Code übergeben wir den übereinstimmenden Inhalt als Funktionsparameter an die Repl-Funktion und Rückgabewert als Ersatzergebnis. Hier gibt unsere Funktion direkt die feste Zeichenfolge „morgen“ zurück.

Während des Ersetzungsvorgangs benötigen Sie manchmal einige erweiterte Funktionen, z. B. das Beibehalten der ursprünglichen Groß-/Kleinschreibung beim Ersetzen, das Extrahieren der im Übereinstimmungsergebnis enthaltenen Teilzeichenfolge beim Ersetzen usw. Das Regexp-Paket bietet verwandte Funktionen und Strukturen, um unterschiedliche Ersetzungsanforderungen flexibel umzusetzen.

Kurz gesagt, das Regexp-Paket bietet uns leistungsstarke Unterstützung für reguläre Ausdrücke, wobei Ersetzungsoperationen eine der am häufigsten verwendeten Funktionen sind. Ich glaube, dass die Leser durch die Einleitung dieses Artikels die grundlegenden Methoden der Ersetzungsoperationen im Regexp-Paket beherrschen und sie entsprechend den tatsächlichen Anforderungen flexibel verwenden können.

Das obige ist der detaillierte Inhalt vonKonzentrieren Sie sich auf den Ersetzungsvorgang im Regexp-Paket. 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
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!