我有一个长字符串,其形式如下:

我如何在<DETAIL>和之间提取数据</TEXT>,请注意它不是一个xml文件.每个结局后都会有一个新行.我尝试了以下方法:
Pattern pattern = Pattern.compile("<DETAIL>(.*?)</TEXT>");
Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
Run Code Online (Sandbox Code Playgroud)
它给了我空值,任何人都可以帮忙吗?提前致谢.
默认情况下,.与换行符不匹配.
使用sflag(DOTALL).匹配换行符.
Pattern pattern = Pattern.compile("(?s)<DETAIL>(.*?)</TEXT>");
Run Code Online (Sandbox Code Playgroud)
要么
Pattern pattern = Pattern.compile("<DETAIL>(.*?)</TEXT>", Pattern.DOTALL);
Run Code Online (Sandbox Code Playgroud)