package shell import "regexp" // splits strings. should work all the time // A string with mixed line endings, including old Mac style (\r) func SplitNewLines(input string) []string { // This regex matches a carriage return and optional newline, OR just a newline. // This covers \r\n, \n, and \r. re := regexp.MustCompile(`\r\n?|\n|\r`) // The -1 means there is no limit to the number of splits. lines := re.Split(input, -1) // Output: ["line one" "line two" "line three" "line four"] return lines }