Как удалить> тег из строки в Java - PullRequest
0 голосов
/ 16 октября 2018

У меня есть следующая строка."Christmas is a very expensive> time of year for most> people so the <br/>Christmas> bazaar is an <b>opportunity</b> for parents to indulge their offspring and buy lots> of small items> as either presents or <b>stocking fillers</b> .|Trust me, it's not easy scooping up gift votives and <b>stocking stuffers</b>".

Теперь я хочу удалить только ">" из строк, которые заканчиваются только словами, а не html-тегами, такими как "<br/> or <b"

Если я использую String.replace("\\>",""), тогда он удалит все> тег из строки.Как этого добиться?

Ответы [ 4 ]

0 голосов
/ 17 октября 2018

Я завершил шустрый и эффективный анализатор HTML, доступный для загрузки здесь:

http://developer.torello.directory/JavaHTML/index.html

Вот ваш вопрос решен:

import Torello.HTML.*;
import Torello.Java.*;
import java.util.*;
import java.io.*;

public class ReplaceGreaterThan
{
    public static void main(String[] argv) throws IOException
    {
        String YOUR_STRING_VAR = "Christmas is a very expensive> time of year for most> people so the <br />Christmas> bazaar is an <b>opportunity</b> for parents to indulge their offspring and buy lots> of small items> as either presents or <b>stocking fillers</b> .|Trust me, it's not easy scooping up gift votives and <b>stocking stuffers</b>";
        Vector<HTMLNode> page = HTMLPage.getPageTokens(YOUR_STRING_VAR, false);
        HTMLNode n;
        for (int i=0; i < page.size(); i++)
            if ((n = page.elementAt(i)) instanceof TextNode)
                if (n.str.contains("<") || n.str.contains(">"))
                    page.setElementAt(new TextNode(n.str.replaceAll("(<|>)", "")), i);
        YOUR_STRING_VAR = HTMLNodeFunction.pageToString(page);
        System.out.println(YOUR_STRING_VAR);
    }
}

Вот результат:

Рождество - это очень дорогое время года для большинства людей, поэтому Рождественский базар - это возможность для родителейпобалуйте своих детей и купите много мелких вещей в качестве подарков или наполнителей для чулок . | Поверьте мне, нелегко собрать подарочных писателей и наполнителей для чулок

0 голосов
/ 16 октября 2018

Проверьте, подходит ли вам следующий код:

    String[] split = "This is test string> <br></br>".split(">");

    StringBuilder sb = new StringBuilder();
    for (String it : split) {
        if(it.contains("<")) {
            it += ">";
        }

        sb.append(it);
    }

    String result = sb.toString();
0 голосов
/ 16 октября 2018

Если вам нужно только удалить первое вхождение ">", используйте replacefirst (regex, "new-value");

System.out.println("This istest string> <br></br>".replaceFirst(">",""));

Вывод:

This istest string <br></br>

EDIT: Согласно вашему комментарию, «но мне нужно заменить все«> », оканчивающиеся словом из строки«.

Использовать «positive lookbehind»

(?<=String)> (положительный взгляд сзади) соответствует> (и только>) в string>, но не соответствует чему-то еще>.

System.out.println("This istest string> <br></br>".replaceFirst("(?<=string)>",""));
0 голосов
/ 16 октября 2018

Вы можете использовать String.replace («строка>», «строка») для достижения результата.Если это не решит вашу проблему, пожалуйста, предоставьте более подробную информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...