我嘗試屏蔽字串,但出了問題
可複製的程式碼如下,並且需要所有新舊對,如何取得 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中文網其他相關文章!