Heim > Backend-Entwicklung > Golang > Wie simuliere ich benannte Erfassungsgruppen in regulären Go-Ausdrücken?

Wie simuliere ich benannte Erfassungsgruppen in regulären Go-Ausdrücken?

Barbara Streisand
Freigeben: 2024-12-19 11:08:17
Original
490 Leute haben es durchsucht

How to Simulate Named Capturing Groups in Go Regular Expressions?

So emulieren Sie erfassende Gruppen in regulären Go-Ausdrücken

Im Gegensatz zu Ruby und Java, die PCRE-kompatible reguläre Ausdrücke verwenden, die die Erfassung unterstützen Gruppen verwendet Go die RE2-Bibliothek von Google, die diese Funktionalität nicht nativ bietet. In diesem Artikel wird untersucht, wie Sie in Go einen ähnlichen Effekt erzielen.

Betrachten Sie den folgenden regulären Ruby-Ausdruck mit einfangenden Gruppen:

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

Dieses Muster entspricht Datumszeichenfolgen wie „2001-01-20“ und erfasst die Jahres-, Monats- und Tageswerte in benannten Gruppen, auf die über ihre Namen zugegriffen werden kann, z. B. ["Jahr"].

Um dieses Verhalten zu emulieren In Go muss das Präfix „P“ hinzugefügt werden, um Gruppennamen zu erfassen:

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

Der folgende Go-Code zeigt beispielsweise, wie dieses modifizierte Muster verwendet wird:

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

The Die FindStringSubmatch-Funktion gibt die erfassten Gruppen zurück, während SubexpNames die Namen der erfassenden Gruppen bereitstellt, sodass Sie auf deren Werte zugreifen können.

Durch Hinzufügen des Präfixes „P“. Um Gruppennamen zu erfassen und die SubexpNames-Funktion zu nutzen, ist es möglich, die Funktionalität der Gruppenerfassung in regulären Ruby-Ausdrücken zu emulieren, wenn mit der RE2-Bibliothek von Go gearbeitet wird.

Das obige ist der detaillierte Inhalt vonWie simuliere ich benannte Erfassungsgruppen in regulären Go-Ausdrücken?. 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