HTML-Tags aus einem Text der Reihe nach in einer ArrayList speichern

Mit Hilfe eines regulären Ausdrucks lassen sich HTML-Tags aus einem Text auslesen und der Reihenfolge 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.