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

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

PHPz
發布: 2024-02-08 20:53:44
轉載
980 人瀏覽過

如何正確地將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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板