2011-01-06 2 views
1

Grüße alle, Ich habe einen Text, der die <a></a> Tags etwas wie kann, enthält:Wie entferne ich die <a> Tags nur aus einem Text?

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

Ich möchte diese Tags entfernen und halten Sie den Text zwischen ihnen sein wie:

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

, wie macht man ?

+1

Sprechen Sie über HTML-Tags wie 'A link' oder über etwas anderes? –

+0

yup genau was um darüber zu reden. –

+0

@Jean - wenn er über HTML-Tags spricht, ist der Text zwischen den Tags * nicht * die Adresse (URL) - das ist, wie wir wahrscheinlich alle wissen, der Wert des 'href'-Attributs .. also ja, was genau soll "behalten" werden ?? –

Antwort

5
String str="<a>sadasd</a>"; 
str.replaceAll("<a>","").replaceAll("</a>","");//sadasd 

Oder

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

Oder ist der beste Weg für 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

+1 für Geschwindigkeit :) – niksvp

+0

Sorry, aber es hat nicht mit einem großen Text wie funktioniert: Bitte besuchen Sie diesen Link http://www.google.com –

+0

für große HTML-Parsing Sie sollten für JSoup gehen –

8

Für nur die <a> und </a> Tags

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

Wenn y gehen ou bedeuten <a> Tags mit anderen Attributen dann würden Sie

String source = "<a>blargle</a>"; 
source.replaceAll("</?a[^>]*>", ""); 
+0

genau Wenn es ein < a > Tag mit oder ohne Attribute, entfernen Sie alle Tags mit Attributen und halten Sie den Text zwischen ihnen. –

+0

Frage bearbeitet. –

+0

@ Schwert101 - das ist genau das, was dieser Code tun sollte – zellio

1

brauchen Hier gehen Sie: str.replaceAll("</?a>","")

1
System.out.println(s.replaceAll("</?a>", "")); 
0

Im Allgemeinen ist es eine schlechte Idee, HTML zu beheben mit einem regulären Ausdruck - für eine Diskussion der sehen Top-Antwort hier Using regular expressions to parse HTML: why not? - obwohl es aussieht, könnte es nur schnell sein. Versuchen Sie stattdessen, einen DOM-Parser in Ihrer bevorzugten Sprache zu verwenden, und ersetzen Sie den Knoten einfach durch seinen untergeordneten Textknoten.

0
if (message.contains("<a href=")) { 
    message = message.replaceAll("(.*)?<a.*?>", "").replaceAll("</a>", ""); 
} 
Verwandte Themen