提问人:akiraxie 提问时间:10/7/2023 最后编辑:akiraxie 更新时间:10/7/2023 访问量:76
如何正确地将Golang中的字符串替换为“贪婪原则”?
how to replace string in golang with 'greedy principle' properly ?
问:
我试图屏蔽字符串,但出了点问题
可重现的代码在下面,所有新旧对都是必需的,如何获取而不是?col1
col0b
package main
import (
"fmt"
"strings"
)
func main() {
r := strings.NewReplacer("a", "col0", "ab", "col1")
s := "ab"
fmt.Println(r.Replace(s))
}
我希望字符串可以替换为最大长度或贪婪原则
答:
3赞
tax evader
10/7/2023
#1
从文档中可以看出,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))
}
评论