HTML-Tags aus einem Text der Reihe nach in einer ArrayList speichern
Im Beispiel überninmmt die Methode storeTags() den zu
bearbeitenden Text als String-Parameter.
Der
regüläre Ausdruck zum Auslesen aller Tags wird in einem
Objekt vom Typ Pattern gespeichert. Deren Methode matcher()
liefert ein Matcher-Objekt, das den Eingabe-String gegen
die Character-Sequenz des regulären Ausdrucks prüft.
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TagsExtrahierenClass {
public static void main(String[] args) {
TagsExtrahierenClass markup = new TagsExtrahierenClass();
String text = "Ene mene Maus und <b>Du</b> bist raus";
ArrayList list;
list = markup.storeTags(text);
System.out.println("Inhalt der Tag-Liste:");
for (int i = 0; i < list.size(); i++) {
System.out.println("Tag Nr." + i + ": " + list.get(i));
}
}
public ArrayList storeTags(String eingabe) {
ArrayList ausgabe = new ArrayList();
Pattern p = Pattern.compile("<[^>]*>");
Matcher m = p.matcher(eingabe);
boolean result = m.find();
while (result) {
ausgabe.add(m.group());
eingabe = eingabe.substring(m.end(), eingabe.length());
m = p.matcher(eingabe);
result = m.find();
}
return ausgabe;
}
}
Die Methode find() sucht nach der nächsten passenden
Sequenz im Text und gibt bei Erfolg true zurück.
Die Methode group() liefert den gefundenen Textabschnitt -
hier den jeweiligen HTML-Tag. Er wird anschließend in der zuvor
erzeugten ArrayList gespeichert und eine neue Suche
gestartet.
Zur Kontrolle wird in der main()-Methode
die ArrayList durchlaufen und die Tags ausgegeben.
Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.