Как удалить теги <a>только из текста? - PullRequest
2 голосов
/ 06 января 2011

Привет всем, у меня есть текст, который может содержать теги <a></a> что-то вроде:

hello this is a link <a href="www.google.com"> www.google.com </a> please visit it.

Я хочу удалить эти теги и оставить текст между ними таким, как:

hello this is a link  www.google.com  please visit it.

, как это сделать?

Ответы [ 6 ]

9 голосов
/ 06 января 2011

Только для тегов <a> и </a>

String source = "<a>blargle</a>";
source.replaceAll( "</?a>", "" );

Если вы имеете в виду <a> теги с другими атрибутами, тогда вам понадобится

String source = "<a>blargle</a>";
source.replaceAll( "</?a[^>]*>", "" );
6 голосов
/ 06 января 2011
String str="<a>sadasd</a>";
str.replaceAll("<a>","").replaceAll("</a>","");//sadasd

Или

 str.replaceAll("</?a>","");//sadasd

Или лучше выбрать Jsoup Cleaner

        String str = "hello this is a link <a href='www.google.com'> www.google.com </a> please visit it";
        String safe = Jsoup.clean(str, Whitelist.simpleText());
        System.out.println(safe);//hello this is a link  www.google.com  please visit it
1 голос
/ 06 января 2011
System.out.println(s.replaceAll("</?a>", ""));
1 голос
/ 06 января 2011

Вот, пожалуйста, str.replaceAll("</?a>","")

0 голосов
/ 15 мая 2017
if (message.contains("<a href=")) {
    message = message.replaceAll("(.*)?<a.*?>", "").replaceAll("</a>", "");
}
0 голосов
/ 06 января 2011

Как правило, плохая идея - исправлять HTML с помощью регулярного выражения - обсуждение см. В верхнем ответе здесь Использование регулярных выражений для разбора HTML: почему бы и нет? - даже если это выглядит так, как будто просто будь быстрым Вместо этого попробуйте использовать анализатор DOM на выбранном вами языке и просто замените узел его дочерним текстовым узлом.

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