Какое регулярное выражение заменяет все содержимое <> на placeholder
Необходимо реализовать метод
String с параметрами (String text, String placeholder),
который будет заменять в переданной строке String text всё содержимое скобок <> и сами скобки на переданную строку в String placeholder, используя регулярные выражения, и ещё нужно учесть вариант, когда необходимо заменить несколько замен <> в переданной строке.
Ответы (1 шт):
Здесь в вопрос не в регулярном выражении, а в методе, который заменяет все найденные подстроки на заданную подстроку. Метод называется replaceAll.
Pattern p = Pattern.compilte(regex);
Matcher m = p.matcher(text);
String result = m.replaceAll(placeHolder);
Осталось понять, какое регулярное выражение соответствует угловым скобкам с любым содержимым внутри.
Простое предположение <.*> не сработает, поскольку шаблон .* съедает любые символы, в том числе и закрывающую угловую скобку. Поэтому так <[^>]*>, то есть открывающая угловая скобка, затем любые символы, за исключением закрывающей угловой скобки, затем закрывающая угловая скобка. Значит, первая строка будет:
Pattern p = Pattern.compilte("<[^>]*>");
. . .