Как заменить все символы между HTML тегами с помощью java?

Пользователь

от urban_will , в категории: Java , 9 месяцев назад

Как заменить все символы между HTML тегами с помощью java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от marshall.cummings , 9 месяцев назад

@urban_will 

Для замены всех символов между HTML тегами в Java можно использовать регулярные выражения и методы класса String. Например, следующий код будет заменять все символы внутри тегов на пробелы:

1
2
3
String html = "Hello, world!";
String replaced = html.replaceAll("(?<=<)[^>]*(?=>)", " ");
System.out.println(replaced); // выводит "  Hello,  world ! "


В данном примере мы используем метод replaceAll для замены всех символов внутри тегов на пробелы. Регулярное выражение (?<=<)[^>]*(?=>) описывает шаблон для поиска всех символов между символами < и >.


Здесь (?<=<) - это положительная ретроспективная проверка на наличие открывающего тега <. (?=>) - положительная ретроспективная проверка на наличие закрывающего тега >.


[^>]* - любые символы, кроме >.


Также можно использовать сторонние библиотеки, например, Jsoup, которая может не только извлекать данные из HTML-документа, но и изменять их. Например, чтобы заменить все символы между тегами на пробелы, можно использовать следующий код:

1
2
3
4
5
String html = "Hello, world!";
Document doc = Jsoup.parse(html);
doc.select("*").prepend(" ").append(" ");
String replaced = doc.toString().replaceAll("(?<=<)\s+|\s+(?=>)", "");
System.out.println(replaced); // выводит "  Hello,  world ! "


Здесь мы используем Jsoup.parse для создания объекта Document из HTML-строки. Затем мы используем метод select("*"), чтобы выбрать все элементы на странице, и методы prepend и append, чтобы добавить пробелы в начало и конец каждого элемента.


Наконец, мы используем метод toString для возврата измененного HTML-документа в виде строки, а затем заменяем все пробельные символы перед открывающими тегами и после закрывающих тегов с помощью регулярного выражения (?<=<)\s+|\s+(?=>).