文本清理和替换:从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