两个字符串之间的模式在java中

Par*_*war 2 java regex

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

在此输入图像描述

我如何在<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)

它给了我空值,任何人都可以帮忙吗?提前致谢.

fal*_*tru 5

默认情况下,.与换行符不匹配.

使用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)