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

文本清理和替换:从Java文本中删除\ n

闻华容
2023-03-14
问题内容

我正在清理Java代码中的传入文本。文本中包含很多“ \ n”,但与换行符不同,但实际上是“ \
n”。我从String类使用了replaceAll(),但无法删除“ \ n”。这似乎不起作用:

String string;
string = string.replaceAll("\\n", "");

这也没有:

String string;
string = string.replaceAll("\n", "");

我猜这最后一行被标识为实际的新行,因此将从文本中删除所有新行。

而且,从字符串中删除错误文本的不同模式的有效方法是什么。我正在使用正则表达式来检测它们,例如HTML保留字符等以及replaceAll,但是每次我使用replaceAll时,都会读取整个String,对吗?


问题答案:

霍恩克是对的。我只想发表一些解释:

编译器完成后,“ \\ n”转换为“ \ n”(因为您转义了反斜杠)。因此,正则表达式引擎会看到“ \ n”并考虑换行,并将其删除(而不是您拥有的文字“
\ n”)。

编译器将“ \ n”转换为实际的新行。因此,将新行字符发送到正则表达式引擎。

“ \\\\ n”很难看,但是正确。编译器会删除转义序列,因此正则表达式引擎会看到“ \\
n”。正则表达式引擎会看到两个反斜杠,并且知道第一个反斜杠将其转义,因此可以转换为检查文字字符“ \”和“ n”,从而为您提供所需的结果。

Java很不错(这是我使用的语言),但是必须考虑基本上使用两次转义的正则表达式是一个真正的挑战。为了获得更多的乐趣,似乎喜欢尝试翻译反斜杠。



 类似资料:
  • 问题内容: 我有一个像这样的textfile.txt: 如何删除最舒适的前三行和最后一行? 问题答案:

  • 问题内容: 我有以下数据,需要将它们全部放在一行中。 我有这个: 我需要这个: 这些命令均无法完美运行。 他们中的大多数让数据像这样: 问题答案: 编辑: 如果此处发布的所有命令均不起作用,则除了换行符以外,您还有其他用途。可能文件中有DOS / Windows行尾(尽管我希望Perl解决方案即使在这种情况下也可以工作)? 尝试: 如果这不起作用,那么您将不得不更仔细地检查文件(例如,在十六进制编

  • 问题内容: 有没有一种简单的方法可以在JavaScript中获取html字符串并去除html? 问题答案: 如果您在浏览器中运行,那么最简单的方法就是让浏览器为您完成… 注意:正如人们在评论中所指出的那样,如果您不控制HTML的源代码(例如,请勿在可能来自用户输入的任何内容上运行此代码),则最好避免这种情况。对于这些情况,您仍然可以让浏览器为您完成工作-

  • 问题内容: 有没有一种简单的方法可以在JavaScript中获取html字符串并去除html? 问题答案: 如果您在浏览器中运行,那么最简单的方法就是让浏览器为您完成… 注意:正如人们在评论中所指出的那样,如果您不控制HTML的源代码(例如,请勿在可能来自用户输入的任何内容上运行此代码),则最好避免这种情况。对于这些情况,您仍然可以让浏览器为您完成工作。

  • 我有一个包含一些文件路径的长文本。 我想做的是从其中删除路径。文件路径都类似于: 我知道使用“^/all”将选择以/all开头的句子,并选择以.js$结尾的句子。但我无法将这些合并在一起以选择整个文件路径。 毕竟,正则表达式应该放在下面的代码上以删除路径。 我能为它写正则表达式吗?有什么工具吗?

  • 问题内容: 如何替换在文本文件中找到的一行文本? 我有一个字符串,例如: 我想用更新它: (反之亦然) 我该如何完成? 顺便说一句,我只想替换已读取的行。不是整个文件。 问题答案: 在底部,我有一个通用的解决方案来替换文件中的行。但是首先,这是眼前特定问题的答案。辅助功能: 然后调用它: 原始文本文件内容: Output: New text file content: And as a note,