Golang Regex

Golang Regex
Der reguläre Ausdruck, allgemein bekannt als Regex, ist eine Folge von Zeichen, die Suchmuster definieren und regieren, die mit einer bestimmten Zeichenfolge übereinstimmen. Regelmäßige Ausdrücke sind ein sehr nützliches Instrument bei der Arbeit mit Textdaten.

In diesem Artikel wird untersucht.

Golang Regexp -Paket

Das Golang Regexp -Paket bietet Ihnen Methoden und Tools zum Suchen, Filtern, Ersetzen, Validieren und Extrahieren von Zeichenfolgen mit regelmäßigen Ausdrücken.

Um dieses Paket zu verwenden, müssen wir es importieren wie:

Importieren "Regexp"

Um reguläre Expressionsmuster zu definieren, können wir einige vordefinierte Muster verwenden, wie in der folgenden Tabelle gezeigt:

Muster Beschreibung
. Passen Sie einen einzelnen Charakter an
[ABC] Match a, b oder c
\S Passen Sie einen Whitespace -Charakter an. \ t \ n \ f \ r
[A-C] Jeder Charakter von a bis c
[^abc] Negieren und übereinstimmen alle Zeichen außer A, B und C
\ w Passen Sie einen Wortcharakter an
a | b Alternativer Bediener. a oder b, bevorzuge a
[A-Z0-9] Passen Sie einen beliebigen Charakter von A bis Z oder 0 bis 9 an
\D Passen Sie eine Ziffer zwischen 0 und 9 an
^ Zu Beginn eines Textes oder einer Zeile
? Passen Sie den vorherigen Charakter nur einmal an
+ Passen Sie den vorhergehenden Charakter einmal oder mehrmals an
* Passen Sie den vorhergehenden Zeichen 0 oder mehrmals an
$ Übereinstimmung am Ende des Textes

FindString () Methode

Die FindString () -Methode gibt das linke Substring zurück, das einem bestimmten Muster entspricht. Wenn keine Übereinstimmung gefunden wird, gibt die Funktion eine leere Zeichenfolge zurück.

Ein Beispielcode ist wie gezeigt:

Packagemain
importieren (
"fmt"
"Regexp"
)
funcmain ()
Re: = regexp.MUSSCOMPILE ("F ([A-Z]+) T")
fmt.Println (re.Findstring ("frucht"))
fmt.Println (re.FindString ("fit"))
fmt.Println (re.FindString ("false"))
fmt.Println (re.FindString ("Glaube"))
fmt.Println (re.FindString ("fix"))

Im vorherigen Beispiel verwenden wir die MustCompile -Methode, um das reguläre Expressionsmuster zu einer optimierten Regex -Struktur zu kompilieren.

Dann verwenden wir die FindString () -Methode, um die passenden Zeichenfolgen zurückzugeben. Der vorherige Code sollte zurückgeben:

Frucht
fit
fait

Hinweis: Die Funktion gibt leere Zeichenfolgen zurück, wenn keine Übereinstimmung vorliegt.

FindStringIndex () Methode

Diese Methode gibt den Start- und Endindex des linken Substring zurück, der mit einem bestimmten regulären Ausdruck übereinstimmt.

Beispiel:

Packagemain
importieren (
"fmt"
"Regexp"
)
funcmain ()
Re: = regexp.MUSSCOMPILE ("F ([A-Z]+) T")
fmt.Println (re.FindStringIndex ("frucht"))

Der vorherige Code sollte den Index des passenden Substrings zurückgeben. In unserem Beispiel kehrt der Code von Index 0 bis 5 zurück:

$ go run regex.gehen
[0 5]

Methode ersendallstring ()

Die Methode ersatz -Allstring () wird verwendet, um den Text zu ersetzen, der einem bestimmten Muster entspricht. Es gibt die Kopie zurück und ersetzt alle passenden Zeichenfolgen.

Wir können diese Methode mit dem folgenden Code veranschaulichen:

Packagemain
importieren (
"fmt"
"Regexp"
)
funcmain ()
Re: = regexp.MUSSCOMPILE ("F ([A-Z]+) T")
fmt.Printf ("%q \ n", RE.Ersatzlastring ("Obst", "Essen"))

Der vorherige Code sollte die übereinstimmende Zeichenfolge durch den angegebenen Wert ersetzen. Da die gesamte Zeichenfolge mit dem angegebenen Muster übereinstimmt, ersetzt die Funktion alle Zeichen.

Split () Methode

Wir können eine Zeichenfolge mit der Methode Split () und das angegebene Muster teilen. Ein Beispielcode ist wie gezeigt:

Packagemain
importieren (
"fmt"
"Regexp"
)
funcmain ()
Re: = regexp.MustCompile ("u")
fmt.Printf ("%q \ n", RE.Split ("Frucht", -1))
fmt.Printf ("%q \ n", RE.Split ("Donnerstag", -2))
fmt.Printf ("%q \ n", RE.Split ("Funktion", 2))

Der vorherige Code definiert einen regulären Ausdruck, der einem einzelnen Zeichen entspricht. Anschließend verwenden wir die Split -Methode, um die bereitgestellte Zeichenfolge in verschiedene Substrings aufzuteilen, in denen das Muster übereinstimmt.

Die resultierende Ausgabe ist wie gezeigt:

$ go run regex.gehen
["fr" "it"]
["Th" "Rsday"]
["F" "Ntion"]

Abschluss

Dieses Tutorial zeigt, wie Sie mit dem regelmäßigen Ausdruck in Go -Programmierung mithilfe des Regexp -Pakets beginnen können. Darüber hinaus wurden verschiedene Methoden erörtert, um die richtige Option für Ihre Anforderungen zu ermitteln. Überprüfen Sie andere Linux -Hinweisartikel und die Dokumentation, um weitere Tipps zu erfahren.