我有以下代码,只要在字符串中找到模式,它就会进行解析和替换。
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,以实际将其打印出字符串而不需要转到下一行吗?
newstr = newstr.replace("\n", "\\n");
您可以像这样\
逃脱\\
。因此,这将打印\n
,而不实际换行。
输出:
nv13=hello\n8nv13=hello\n8nv13=hello\n8nv13=hello\n8nv13=hello\n8nv13=4t543r523w4r2w3e4r\n5