Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用正则表达式在双线中断之前删除字符串_Java_Regex - Fatal编程技术网

Java 使用正则表达式在双线中断之前删除字符串

Java 使用正则表达式在双线中断之前删除字符串,java,regex,Java,Regex,我有这样一个字符串: this is my text more text more text text I want is below 我只想要双线分隔符下面的文本,而不是之前的内容 以下是我认为有效的方法: myString.replaceFirst(".+?(\n\n)",""); 但是,它不起作用。任何帮助都将不胜感激为什么不: s=s.substring(s.indexOf(“\n\n”)+2) 请注意,它可能是+1、+2或+3。我现在不想打开我的电脑来测试它。你可以使用split

我有这样一个字符串:

this is my text
more text
more text

text I want
is below
我只想要双线分隔符下面的文本,而不是之前的内容

以下是我认为有效的方法:

myString.replaceFirst(".+?(\n\n)","");
但是,它不起作用。任何帮助都将不胜感激

为什么不:

s=s.substring(s.indexOf(“\n\n”)+2)


请注意,它可能是+1、+2或+3。我现在不想打开我的电脑来测试它。

你可以使用split,这里就是一个例子

String newString = string.split("\n\n")[1];

您应该使用下面的正则表达式:-

str = str.replaceFirst("(?s).+?(\n\n)", "");
因为,在遇到两个换行符之前,您希望匹配任何内容,包括
换行符


请注意,
点(.)
换行符
不匹配,因此在遇到
第一个换行符时将停止匹配

如果您希望您的
点(.)
与换行符匹配,可以使用
模式.DOTALL
,在
str.replaceFirst
的情况下,它是通过使用
(?s)
表达式实现的

根据以下文件:-

在dotall模式下,表达式。匹配任何字符,包括 行终止符。默认情况下,此表达式与第行不匹配 终结者

也可以通过嵌入的标志表达式(?s)启用Dotall模式


它到底是如何工作的?只有第一行被删除,所以只有在1/n之后