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

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

以上是 文本清理和替换:从Java文本中删除\ n 的全部内容, 来源链接: utcz.com/qa/416042.html

回到顶部