Ich portiere eine Bibliothek von Ruby nach Go und habe gerade entdeckt, dass reguläre Ausdrücke in Ruby nicht mit Go (google RE2) kompatibel sind. Es ist mir aufgefallen, dass Ruby & Java (plus andere Sprachen verwenden reguläre Ausdrücke PCRE (Perl kompatibel, die das Aufnehmen von Gruppen unterstützt)), so muss ich meine Ausdrücke neu schreiben, so dass sie ok in Go kompilieren.Wie erhalten Sie Capturing Group Funktionalität in Golang regulären Ausdrücken?
Zum Beispiel, ich habe die folgende Regex:
`(?<Year>\d{4})-(?<Month>\d{2})-(?<Day>\d{2})`
Dieser Eingang akzeptieren soll wie:
2001-01-20
die diese Gruppen erlauben dem Jahr, Monat und Tag in Variablen erfaßt werden. Um den Wert jeder Gruppe zu ermitteln, ist es sehr einfach. Sie indizieren einfach die zurückgegebenen übereinstimmenden Daten mit dem Gruppennamen und Sie erhalten den Wert zurück. So zum Beispiel das Jahr zu bekommen, so etwas wie dieser Pseudo-Code:
m=expression.Match("2001-01-20")
year = m["Year"]
Dies ist ein Muster, das ich viel in meinem Ausdrücke verwenden, so dass ich habe viel Umschreiben zu tun.
Also, gibt es eine Möglichkeit, diese Art von Funktionalität in Go Regexp zu bekommen; Wie soll ich diese Ausdrücke umschreiben?
Ok groß, das aussieht Aber wie würde ich Zugang zu den einzelnen Werten, Jahr, Monat und Tag bekommen? – Zephilim
Vergiss den letzten Kommentar, ich habe diese Antwort gefunden. Es ist alles in der? P, wie Sie sagen :) – Zephilim
Ich bin immer noch verwirrt davon; Ich bin mir nicht sicher, ob sie nach Jahr, Monat usw. adressierbar sind.Ich bekomme ein Array mit vier Werten zurück und kann darin indizieren, aber das war's. –