Heim > Backend-Entwicklung > Golang > Wie kann ich erfassende Gruppen in regulären Go-Ausdrücken emulieren?

Wie kann ich erfassende Gruppen in regulären Go-Ausdrücken emulieren?

Mary-Kate Olsen
Freigeben: 2024-12-31 02:06:14
Original
830 Leute haben es durchsucht

How Can I Emulate Capturing Groups in Go Regular Expressions?

Erfassen von Gruppen in regulären Go-Ausdrücken

In Go verwenden reguläre Ausdrücke die RE2-Bibliothek, der es an nativer Unterstützung für die Erfassung von Gruppen fehlt, wie sie in zu finden ist Ruby und andere Sprachen. Es gibt jedoch eine Lösung, um diese Funktionalität zu emulieren.

Um das gewünschte Verhalten zu erreichen, muss man „P“ an den Gruppennamen anhängen, wie im folgenden aktualisierten Ausdruck dargestellt:

(?P<Year>\d{4})-(?P<Month>\d{2})-(?P<Day>\d{2})
Nach dem Login kopieren

Um die Werte aus den erfassenden Gruppen zu extrahieren, kann man die Funktion re.SubexpNames() verwenden, um die Gruppennamen abzurufen und sie mit der Übereinstimmung zu vergleichen Daten.

Betrachten Sie das folgende Beispiel:

package main

import (
    "fmt"
    "regexp"
)

func main() {
    r := regexp.MustCompile(`(?P<Year>\d{4})-(?P<Month>\d{2})-(?P<Day>\d{2})`)
    fmt.Printf("%#v\n", r.FindStringSubmatch(`2015-05-27`))
    fmt.Printf("%#v\n", r.SubexpNames())
}
Nach dem Login kopieren

In diesem Beispiel gibt r.FindStringSubmatch() die passende Teilzeichenfolge zurück und das entsprechende r.SubexpNames() stellt die Gruppennamen bereit:

[]string{"2015", "05", "27"}
[]string{"", "Year", "Month", "Day"}
Nach dem Login kopieren

So kann man über Gruppennamen bequem auf das erfasste Jahr, den Monat und den Tag zugreifen und bietet ähnliche Funktionen wie die Erfassung von Gruppen in anderen Sprachen.

Das obige ist der detaillierte Inhalt vonWie kann ich erfassende Gruppen in regulären Go-Ausdrücken emulieren?. 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