我一直试图读取一个文件,然后将读取的材料放入一个字符串中.然后字符串将逐行分成多个字符串:
absPath, _ := filepath.Abs("../Go/input.txt") data, err := ioutil.ReadFile(absPath) if err != nil { panic(err) } input := string(data)
input.txt读作:
一个
强壮的小鸟
非常
宽容的心
去
有一天去学校
忘记了他的食物
家
然而,
re = regexp.MustCompile("\\n") input = re.ReplaceAllString(input, " ")
将文本变成了一个乱七八糟的混乱:
他的食物atot
我不确定如何更换新行会如此糟糕到文本反转的程度
我猜您正在使用Windows运行代码.请注意,如果打印出结果字符串的长度,它将显示超过100个字符的内容.原因是Windows不仅使用换行符(\n
)而且还使用回车符(\r
) - 因此Windows中的换行符实际上\r\n
不是\n
.要从字符串中正确过滤它们,请使用:
re = regexp.MustCompile(`\r?\n`) input = re.ReplaceAllString(input, " ")
反引号将确保您不需要在正则表达式中引用反斜杠.我使用问号回车,以确保您的代码也适用于其他平台.