如何拆分Golang字符串而不删除分隔符?

Mac*_*BED 1 string split go

根据如何分割字符串并将其分配给Golang中的变量的答案?拆分字符串会产生一个字符串数组,其中分隔符不存在于数组中的任何字符串中.有没有办法分割字符串,使分隔符位于给定字符串的最后一行?

s := strings.split("Potato:Salad:Popcorn:Cheese", ":")
for _, element := range s {
    fmt.Printf(element)
}
Run Code Online (Sandbox Code Playgroud)

输出:

Potato
Salad
Popcorn
Cheese
Run Code Online (Sandbox Code Playgroud)

我希望输出以下内容:

Potato:
Salad:
Popcorn:
Cheese
Run Code Online (Sandbox Code Playgroud)

我知道理论上我可以将":"附加到每个元素的末尾,除了最后一个元素,但是如果可能的话,我正在寻找更通用,更优雅的解决方案.

dap*_*lho 9

您正在寻找SplitAfter.

s := strings.SplitAfter("Potato:Salad:Popcorn:Cheese", ":")
  for _, element := range s {
  fmt.Println(element)
}
// Potato:
// Salad:
// Popcorn:
// Cheese
Run Code Online (Sandbox Code Playgroud)

去游乐场