Heim >Backend-Entwicklung >Golang >Wie ersetzt man Strings in Golang richtig durch das „Gierprinzip'?

Wie ersetzt man Strings in Golang richtig durch das „Gierprinzip'?

PHPz
PHPznach vorne
2024-02-08 20:53:44993Durchsuche

Wie ersetzt man Strings in Golang richtig durch das „Gierprinzip?

Frageninhalt

Ich habe versucht, die Zeichenfolge zu blockieren, aber etwas ist schiefgegangen

Der reproduzierbare Code ist unten und erfordert alle alten und neuen Paare. Wie bekomme ich col1 而不是 col0b?

package main

import (
    "fmt"
    "strings"
)

func main() {
    r := strings.NewReplacer("a", "col0", "ab", "col1")
    s := "ab"
    fmt.Println(r.Replace(s))
}

Ich möchte, dass die Zeichenfolge mit maximaler Länge oder dem Greedy-Prinzip ersetzbar ist


Richtige Antwort


Laut Dokumentation führt die Ersetzung durch NewReplacer die Zeichenfolgen in der Reihenfolge aus, in der sie im Ziel erscheinen, ohne überlappende Übereinstimmungen, also folgt immer der ersten passenden Basis. Wenn es erlaubt ist, denke ich, dass Sie dieses Problem lösen könnten, indem Sie die Ersatzpaare so umordnen, dass die längere Zeichenfolge (“ab”-“col1”)放置在较短的字符串(“a”,“col0”) vor

kommt
package main

import (
    "fmt"
    "strings"
)

func main() {
    r := strings.NewReplacer("ab", "col1", "a", "col0")
    s := "ab"
    fmt.Println(r.Replace(s))
}

Das obige ist der detaillierte Inhalt vonWie ersetzt man Strings in Golang richtig durch das „Gierprinzip'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen