複数行に対して正規表現適用

(?m)

// expected

// <html><style>style1\nstyle2</style><body>body</body></html>

// <html><body>body</body></html>

String str = "<html><style>style1\nstyle2</style><body>body</body></html>";

String regex = "<style>(?m).+?</style>";

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

Matcher m = p.matcher(str);

String result = m.replaceFirst("");

System.err.println(result); // <html><body>body</body></html>