How to strings.Split on newline?

It does not work because you're using backticks:

Raw string literals are character sequences between back quotes ``. Within the quotes, any character is legal except back quote. The value of a raw string literal is the string composed of the uninterpreted (implicitly UTF-8-encoded) characters between the quotes; in particular, backslashes have no special meaning and the string may contain newlines.

Reference: http://golang.org/ref/spec#String_literals

So, when you're doing

strings.Split(result,`\n`)

you're actually splitting using the two consecutive characters "\" and "n", and not the character of line return "\n". To do what you want, simply use "\n" instead of backticks.


For those of us that at times use Windows platform, it can help remember to use replace before split:

strings.Split(strings.ReplaceAll(windows, "\r\n", "\n"), "\n")

Go Playground


You have to use "\n".

Splitting on `\n`, searches for an actual \ followed by n in the text, not the newline byte.

playground

Tags:

Go