Übereinstimmungen mit Regex in Go finden
Bei der Arbeit mit Go kann es sein, dass Sie bestimmte Muster innerhalb von Zeichenfolgen mithilfe regulärer Ausdrücke abgleichen müssen. So erreichen Sie dies mit dem Regexp-Paket:
Frage:
Wie kann ich alle Übereinstimmungen für einen angegebenen regulären Ausdruck innerhalb einer bestimmten Zeichenfolge finden und sie als zurückgeben? Array?
Beispiel:
Betrachten Sie die Zeichenfolge: „{city}, {state} {zip}“. Das Ziel besteht darin, ein Array zurückzugeben, das alle in geschweiften Klammern eingeschlossenen Teilzeichenfolgen enthält.
Erster Versuch:
Mit dem Regexp-Paket haben Sie möglicherweise den folgenden Code ausprobiert:
r := regexp.MustCompile("/({[^}]*})/") matches := r.FindAllString("{city}, {state} {zip}", -1)
Dieser Code gibt jedoch ein leeres Slice zurück, was darauf hinweist, dass es keine Übereinstimmungen gab gefunden.
Lösung:
Um dieses Problem zu beheben, beachten Sie die folgenden Schritte:
Für alle Übereinstimmungen:
r := regexp.MustCompile(`{[^{}]*}`) matches := r.FindAllString("{city}, {state} {zip}", -1) fmt.Println(matches) // Prints: [{city}, {state}, {zip}]
Nur für erfasste Teile:
r := regexp.MustCompile(`{([^{}]*)}`) matches := r.FindAllStringSubmatch("{city}, {state} {zip}", -1) for _, v := range matches { fmt.Println(v[1]) // Prints: city, state, zip }
Das obige ist der detaillierte Inhalt vonWie finde ich effizient alle Regex-Übereinstimmungen in einem Go-String?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!