首頁 >後端開發 >Golang >如何正確地將golang中的字串替換為「貪婪原則」?

如何正確地將golang中的字串替換為「貪婪原則」?

PHPz
PHPz轉載
2024-02-08 20:53:44994瀏覽

如何正確地將golang中的字串替換為「貪婪原則」?

問題內容

我嘗試屏蔽字串,但出了問題

可複製的程式碼如下,並且需要所有新舊對,如何取得 col1 而不是 col0b

package main

import (
    "fmt"
    "strings"
)

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

我希望字串可以用最大長度或貪婪原則替換


正確答案


根據文檔,NewReplacer的替換按照它們在目標中出現的順序執行字串,沒有重疊匹配,因此它將始終遵循第一個匹配的基礎。如果允許,我認為您可以透過重新組織替換對來解決此問題,以便將較長的字串(“ab”-“col1”)放置在較短的字串( “a”,“col0”)之前

package main

import (
    "fmt"
    "strings"
)

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

以上是如何正確地將golang中的字串替換為「貪婪原則」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除