繁体   English   中英

我正在尝试将出现的 \r 替换为 \r\n。 它还会替换 \r 前后的字符。 我在这里做错了什么?

[英]I am trying to replace the occurrences of \r to \r\n. It is also replacing the character before and after \r. What am I doing wrong here?

String abc = "ABC\n\rDEF\rGHI\nJKL\n\rMNO\r\tPQR\t";
String cde = abc.replaceAll("[^\n]\r[^\t]", "\n\r");
System.out.println(cde);

\r 不应被 \n 或 \t 包围。 例如,我不想将 \n\r 替换为 \n\n\r。

预期:“ABC\n\rDEF\n\rGHI\nJKL\n\rMNO\r\tPQR\t”
实际:“ABC\n\rDE\n\rHI\nJKL\n\rMNO\r\tPQR\t”

有 Linux 行结尾\n和 Windows 行结尾\r\n

s = s.replaceAll("\\R", "\r\n");

对任何以\R结尾的行使用正则表达式模式来替换它。

回复上面留下的评论(抱歉回复慢)

这是分组的 regex101 示例。

请注意,根据您的语言,可能需要使用转义字符“\”。 我用了表达

([^\\n])\\r([^\\t])

和替换字符串

$1\\n\\r$2

结果如图所示

ABC\n\rDEF\n\rGHI\nJKL\n\rMNO\r\tPQR\t

regex101 例子

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM