Java RegEx чтобы заменить все <b></b> на “” внутри тега <pre>

153
01 января 2020, 02:30

У меня есть текст:

<html>
...
<pre>
<b>println("Hello!. I need your help");</b>
<b>println("because Iam newbie");</b>
</pre>
<pre>
<b>println("I know");</b>
<b>println("you can help me");</b>
</pre>
<b>bold stay here</b>
....
</html>

Я хочу заменить в нем <b> и </b> на "" , но только те, которые находятся внутри тега <pre>

<html>
....
<pre>
println("Hello!. I need your help");
println("because Iam newbie");
</pre>
<pre>
println("I know");
println("you can help me");
</pre>
<b>bold stay here</b>
....
</html>

Как это сделать при помощи replaceAll(); ?

Answer 1

Можно решить с помощью Matcher и Pattern

private static String input ="<html>\n" + 
            "...\n" + 
            "<pre>\n" + 
            "<b>println(\"Hello!. I need your help\");</b>\n" + 
            "<b>println(\"because Iam newbie\");</b>\n" + 
            "</pre>\n" + 
            "<pre>\n" + 
            "<b>println(\"I know\");</b>\n" + 
            "<b>println(\"you can help me\");</b>\n" + 
            "</pre>\n" + 
            "<b>bold stay here</b>\n" + 
            "....\n" + 
            "</html>";
    public static void main(String[] args) {
        Pattern pt = Pattern.compile("(<pre>\n(<b>.*<\/b>\n){1,}<\/pre>)");
        Matcher m = pt.matcher(input);
        if(m.find()) {
            System.out.println("Найдена группа:\n "+m.group());
            System.out.println("\nМеняем тег <b>:\n "+m.group().replace("<b>","").replace("</b>", ""));
        }
            }

Результат

Найдена группа:
 <pre>
<b>println("Hello!. I need your help");</b>
<b>println("because Iam newbie");</b>
</pre>
Меняем тег <b>:
 <pre>
println("Hello!. I need your help");
println("because Iam newbie");
</pre>
READ ALSO
Ошибка Can not connect to Ryuk

Ошибка Can not connect to Ryuk

Имеется конфиг для CircleCIНа локальной машине при выполнении CircleCI, все проходит

145
Логика приложения, использование кэша

Логика приложения, использование кэша

Я задался вопросом, как правильно хранить кэш ? Тоесть я хочу услышать предложение как лучше всего его хранитьНапример я думаю так: Качаем...

192
JavaFX стилизация кнопки &ldquo;с пропущенными&rdquo;

JavaFX стилизация кнопки “с пропущенными”

Имеется идея сделать на кнопке что-то вроде "напоминания о пропущенных" как на приложенном изображенииКак можно прицепить к кнопке такое...

166