Heim >Backend-Entwicklung >Golang >Der reguläre Golang-Ausdruck teilt die Zeichenfolge basierend auf Schlüsselwörtern auf
PHP-Editor Apple stellt Ihnen eine leistungsstarke Technik zur Zeichenfolgenverarbeitung vor – den regulären Golang-Ausdruck zum Aufteilen von Zeichenfolgen basierend auf Schlüsselwörtern. In der Entwicklung müssen wir die Zeichenfolge häufig nach einem bestimmten Schlüsselwort aufteilen, um die Daten weiter zu verarbeiten. Durch die Verwendung der regulären Ausdrücke von Golang können wir diese Funktion einfach implementieren und die Entwicklungseffizienz verbessern. In diesem Artikel erfahren Sie ausführlich, wie Sie reguläre Golang-Ausdrücke verwenden und Zeichenfolgen nach Schlüsselwörtern aufteilen, um Ihnen dabei zu helfen, Zeichenfolgen in der täglichen Entwicklung flexibler zu verarbeiten. Lasst uns gemeinsam erkunden!
Dies ist meine Zeichenfolge, aufgeteilt nach Schlüsselwörtern nach findstudentbyid
现在,我将根据 find
单词之前的 find
单词之前和 by
和 by
、id
.
Das Golang-Muster für reguläre Ausdrücke ist also `(?i)(^find{1})(w+)(by{1})(w+)`
Ich versuche, dieses Schlüsselwort aufzuteilen findstudentbyid
, aber es fällt mir schwer, genau die Ergebnisse zu finden, die ich finde.
Meine erwartete Ausgabe ist [通过 id 查找学生]
oder
find student by id
Aber ich kann es nicht. Ich habe diesen Golang-Code ausprobiert
package main import ( "fmt" "regexp" ) func main() { txt := "findstudentbyid" re := regexp.MustCompile(`(?i)(^find{1})(\w+)(by{1})(\w+)`) split := re.Split(txt, -1) set := []string{} for i := range split { set = append(set, split[i]) } fmt.Println(set) }
Ich glaube nicht, dass Regexp.Split()
die richtige Lösung für Ihre Situation ist, laut Dokumentation:
Ich denke, was Sie brauchen, ist, die Unterübereinstimmung zu finden (wie find
、student
、by
和 id
):
Du kannst Regexp.FindStringSubmatch()
also so verwenden:
fmt.Println("result: ", re.FindStringSubmatch(txt)) result: [findstudentbyid find student by id]
Ich denke auch, dass Sie den regulären Ausdruck vereinfachen können, aber vergessen Sie nicht, ihn in Klammern zu setzen, um Unterübereinstimmungen zu behandeln, wie in den Kommentaren erwähnt:
re := regexp.MustCompile(`(find)(.+)(by)(.+)`)
Das obige ist der detaillierte Inhalt vonDer reguläre Golang-Ausdruck teilt die Zeichenfolge basierend auf Schlüsselwörtern auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!