Какое регулярное выражение заменяет все содержимое <> на placeholder

Необходимо реализовать метод String с параметрами (String text, String placeholder), который будет заменять в переданной строке String text всё содержимое скобок <> и сами скобки на переданную строку в String placeholder, используя регулярные выражения, и ещё нужно учесть вариант, когда необходимо заменить несколько замен <> в переданной строке.


Ответы (1 шт):

Автор решения: Mark Shevchenko

Здесь в вопрос не в регулярном выражении, а в методе, который заменяет все найденные подстроки на заданную подстроку. Метод называется replaceAll.

Pattern p = Pattern.compilte(regex);
Matcher m = p.matcher(text);
String result = m.replaceAll(placeHolder);

Осталось понять, какое регулярное выражение соответствует угловым скобкам с любым содержимым внутри.

Простое предположение <.*> не сработает, поскольку шаблон .* съедает любые символы, в том числе и закрывающую угловую скобку. Поэтому так <[^>]*>, то есть открывающая угловая скобка, затем любые символы, за исключением закрывающей угловой скобки, затем закрывающая угловая скобка. Значит, первая строка будет:

Pattern p = Pattern.compilte("<[^>]*>");
. . .
→ Ссылка