Ваше регулярное выражение не совпадает, потому что в вашей входной строке есть метасимволы регулярных выражений.А именно, механизм регулярных выражений интерпретирует круглые скобки вокруг body 0 bytes
как группу захвата вместо буквальных скобок.Вы хотите, чтобы все во входной строке соответствовали буквально , кроме (.*)
частей, верно?
Вы можете разделить входную строку с помощью *
, затем для каждой части вызовитеPattern.quote
для экранирования всех метасимволов регулярных выражений.Наконец, вы объединяете части вместе с (.*)
:
private static String createRegex(String inputString) {
String[] parts = inputString.split("\\*");
return Arrays.stream(parts).map(Pattern::quote).collect(Collectors.joining("(.*)"));
}