当前位置: 首页 > 面试题库 >

Golang:替换文本文件中字符串中的换行符的问题

龙昊焱
2023-03-14
问题内容

我一直试图读取文件,然后将读取的内容放入字符串中。然后,该字符串将按行拆分为多个字符串:

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, " ")

将文本变成混乱的混乱:

他的食物

我不确定替换换行符会如何严重破坏文本本身


问题答案:

我猜您正在使用Windows运行代码。请注意,如果您打印出结果字符串的长度,它将显示超过100个字符。原因是Windows不仅使用换行符(\n),而且还使用回车符(\r)-因此,Windows中的换行符实际上是\r\n,而不是\n。要从字符串中正确过滤掉它们,请使用:

re = regexp.MustCompile(`\r?\n`)
input = re.ReplaceAllString(input, " ")

反引号将确保您无需在正则表达式中引用反斜杠。我使用问号作为回车符,以确保您的代码也可以在其他平台上使用。



 类似资料:
  • 问题内容: 我正在寻找一种替换文件中的字符串而不将整个文件读入内存的方法。通常我会使用Reader和Writer,例如以下内容: 但是,我想就地进行替换,并且不认为可以同时在同一文件上打开Reader和Writer。另外,我正在使用Java 1.4,因此无法访问NIO,扫描仪等。 谢谢唐 问题答案: 通常无法对文件进行“就地”替换,除非替换的长度与原始长度完全相同。否则,文件将需要增大,从而将所有

  • 问题内容: 我是shell脚本的新手,并且对如何使用字符串或其他工具替换文本文件中的第一行感到困惑。这是文本文件的内容: 我想将第一行(电影文件路径)替换为just (可能是shell脚本中的变量) 请指导我如何执行此操作。我遇到了一些帖子,我需要在这里使用吗? 问题答案: sed是正确的工具,请尝试执行以下操作: 说明 平均第一行 剩下的就是替换:我们用变量替换所有(。*)

  • 我试图开发一个由多个数组和文本视图组成的应用程序,我遇到了一个问题。 我有3个文本视图和2个数组。 我的一个数组包含句子。我的第一个问题是如何突出每个句子中的特定单词?例如:“这是我的第一个数组项”,我需要突出显示字符串中的一个单词,这样当它显示在文本视图1中时,它就会像这样出现..."这是我的第一个数组物品" 我的另一个数组包含单词。它们显示在textview2中,也应高亮显示。我的下一个问题是

  • 问题内容: 我有一个名为log.txt的文本文件,它具有以下数据 第一个逗号之前的数字是指定每个项目的索引。 我想做的是读取文件,然后将给定行中字符串的一部分(例如textFiles / a.txt)替换为另一值(例如something / bob.txt)。 这就是我到目前为止 问题答案: 一种方法是使用: 您还可以使用正则表达式,或查找搜索字符串在一行中的何处。

  • 问题内容: 我需要打开一个文本文件并替换一个字符串。我需要这个 到目前为止,这是我所拥有的,但是除了多余的空格外,我看不到文本文件中的任何更改。 我该怎么做? 问题答案: 这项工作:

  • 问题内容: 我使用md5 grunt任务生成MD5文件名。现在,我想在任务的回调中使用新文件名重命名HTML文件中的源。我想知道什么是最简单的方法。 问题答案: 您可以使用简单的正则表达式: 所以…