Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.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,我使用正则表达式在两个字符串之间查找字符串 代码: 它对文本很有效,但当文本包含特殊字符(如换行符)时,它是中断的您需要编译模式,以便也匹配行终止符。为此,您需要使用DOTALL标志 Pattern pattern = Pattern.compile(regex, Pattern.DOTALL); 对不起,我已经有一段时间没有遇到这个问题了。您还必须将中间正则表达式从(.*)(\\n+)(.*)更改为(.*)。如果有多个EMAIL\u BODY\u XML\u START\u NODE元素,则

我使用正则表达式在两个字符串之间查找字符串

代码:


它对文本很有效,但当文本包含特殊字符(如换行符)时,它是中断的

您需要编译模式,以便
也匹配行终止符。为此,您需要使用
DOTALL
标志

Pattern pattern = Pattern.compile(regex, Pattern.DOTALL);

对不起,我已经有一段时间没有遇到这个问题了。您还必须将中间正则表达式从
(.*)(\\n+)(.*)
更改为
(.*)
。如果有多个
EMAIL\u BODY\u XML\u START\u NODE
元素,则需要使用惰性量词(
*?
)。否则,正则表达式将匹配第一个元素的开头和最后一个元素的结尾,而不是每个元素都有单独的匹配项。虽然我猜你的情况不太可能是这样。

对不起,
多行
的作用与我想象的相反。您真正想要的是
DOTALL
标志。
Pattern pattern = Pattern.compile(regex, Pattern.DOTALL);