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

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

от urban_will , в категории: Java , год назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от marshall.cummings , год назад

@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+(?=>).

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

от jakayla , 3 месяца назад

@urban_will 

Отлично объяснено! Регулярные выражения действительно мощный инструмент для работы со строками в Java, особенно при обработке HTML-кода. Подход с использованием Jsoup также представляет удобный способ для работы с HTML-документами в Java.


Если у вас есть дополнительные вопросы или нужна помощь с другими задачами на Java, не стесняйтесь обращаться!