如何从字符串中删除多个换行符 `\n` 但只保留一个?

How to remove multiple line break `\n` from a string but keep only one?

在 JavaScript,我使用这个 Regexp 将多个换行符替换为一个 str.replace(/(\r\n?|\n){2,}/g, '') 但对于 golang 我不确定它会是什么。我怎样才能在 golang 中实现这一点?

输入:

Some string\n\n\n\n\n\nFoo bar Step1:\n\nFoo bar Step2:\n\n\nFoo bar final

输出

Some string\nFoo bar Step1:\nFoo bar Step2:\nFoo bar final

你也可以这样做。

rg := regexp.MustCompile(`(\r\n?|\n){2,}`)
s := "Some string\n\n\n\n\n\nFoo bar Step1:\n\nFoo bar Step2:\n\n\nFoo bar final"
result := rg.ReplaceAllString(s, "")
fmt.Printf("%q", result)
// "Some string\nFoo bar Step1:\nFoo bar Step2:\nFoo bar final"

https://go.dev/play/p/u-mfj7tXctO