Erfassen von Gruppen in regulären Go-Ausdrücken
Beim Portieren von Code von Ruby nach Go stoßen Entwickler häufig auf Kompatibilitätsprobleme mit regulären Ausdrücken. Ruby unterstützt das Erfassen von Gruppen innerhalb von Regexes, eine Funktion, die in der RE2-Bibliothek von Go nicht nativ verfügbar ist.
Ausdrücke für Go neu schreiben
Um die Funktionalität von Erfassungsgruppen zu emulieren, können die folgenden Schritte ausgeführt werden vergeben:
1. Benannte Erfassungsgruppen verwenden:
Anstatt spitze Klammern zu verwenden, fügen Sie „P“ zwischen der öffnenden Klammer und dem Gruppennamen ein, z. B. (?P
2. Querverweisgruppennamen:
Verwenden Sie die Funktion regexp.SubexpNames(), um eine Liste der Erfassungsgruppennamen zu erhalten.
3. Auf erfasste Daten zugreifen:
Verwenden Sie den entsprechenden Gruppennamen als Argument für Funktionen wie FindStringSubmatch, um die erfassten Werte abzurufen.
Beispiel:
package main import ( "fmt" "regexp" ) func main() { r := regexp.MustCompile(`(?P<Year>\d{4})-(?P<Month>\d{2})-(?P<Day>\d{2})`) s := `2015-05-27` fmt.Printf("Matched Substrings: %#v\n", r.FindStringSubmatch(s)) fmt.Printf("Group Names: %#v\n", r.SubexpNames()) }
Ausgabe:
Matched Substrings: [2015 05 27] Group Names: [ Year Month Day ]
Das obige ist der detaillierte Inhalt vonWie kann ich Erfassungsgruppen in regulären Go-Ausdrücken verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!