如何打印换行符而不是实际转到换行符

问题描述 投票:0回答:1

我有以下代码,只要在字符串中找到模式,它就会进行解析和替换。

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class HelloWorld {

    public static void main(String []args){
        String str = "nv13=4t543r523w4r2w3e4r\n8nv13=4t543r523w4r2w3e4r\n8nv13=4t543r523w4r2w3e4r\n8nv13=4t543r523w4r2w3e4r\n8nv13=4t543r523w4r2w3e4r\n8nv13=4t543r523w4r2w3e4r\n5";
        String newstr = str.replaceAll("(?<=nv13=)(.*\n?)(?=\n8)", "hello");
        System.out.println(newstr);
    }
}

我希望输出

nv13=hello\n8nv13=hello\8nv13=hello\n8nv13=hello8nv13=hello\n8nv13=4t543r523w4r2w3e4r\n5

但是我得到

nv13=hello
8nv13=hello
8nv13=hello
8nv13=hello
8nv13=hello
8nv13=4t543r523w4r2w3e4r
5 

我缺少上面的代码来修复\ n,以实际将其打印出字符串而不需要转到下一行吗?

java regex
1个回答
0
投票
newstr = newstr.replace("\n", "\\n");

您可以像这样\逃脱\\。因此,这将打印\n,而不实际换行。

输出:

nv13=hello\n8nv13=hello\n8nv13=hello\n8nv13=hello\n8nv13=hello\n8nv13=4t543r523w4r2w3e4r\n5
© www.soinside.com 2019 - 2024. All rights reserved.