Ваше регулярное выражение выглядит правильно, но вы splitting
вместе с ним вместо matching
. Вы хотите что-то вроде этого:
// Untested code
Matcher matcher = Pattern.compile("<%=(.*?)%>").matcher(str);
while (matcher.find()) {
System.out.println(matcher.group());
}