Regular Expression: HTML- oder XML-Tag?

Hi,

ich frage mich gerade, wie das Pattern aussehen muss,
um ein HTML- oder XML-Tag per RegExp rauszufiltern.
Kann mir da jemand auf die Spruenge helfen?

Dank und Gruss
Patrick

Ok, fuer das Start-Tag koennte das so aussehen:

Pattern pattern = java.util.regex.Pattern.compile("");

Never mind
Patrick

Hallo Patrick.

ich frage mich gerade, wie das Pattern aussehen muss,
um ein HTML- oder XML-Tag per RegExp rauszufiltern.

Das kommt darauf an, was Du genau vor hast.
Wenn Du ein beliebiges HTML-Dokument nimmst
und daraus alle HTML-Tags per Regex herausfischen
willst: das ist technisch nicht möglich!

Reguläre Ausdrücke können keine beliebig verschachtelten
Strukturen
(z.B. HTML-Tags) erkennen.

Wenn Du die Struktur der gesuchten Tags näher einschränken
kannst (Name bekannt und/oder keine Verschachteltung),
kannst Du es mit regulären Ausdrücken probieren.
Allerdings ist das für ein so komplexes Format wie HTML
immer ein sehr fehlerträchtiger Hack.

Die saubere Lösung ist bei XML und HTML die Verwendung
eines Parsers . Für XML empfehle ich dazu JDOM
, siehe z.B.
http://www.galileocomputing.de/openbook/javainsel5/j….

Ein regulärer Ausdruck für das Matching von einfachen HTML-Tags
wäre z.B.

(]\*?&gt:wink: # finde öffnenden Tag
(?: # gefolgt von optionalem
 ([^]+?&gt:wink: # und Ende-Tag 
)? 

Die Probleme mit diesem Ausdruck kannst mit Hilfe des
Regex Coach http://weitz.de/regex-coach/#install
und folgendem Beispiel-HTML-Dokument untersuchen:

Test[Dies ist ein verschachtelter Link](http://www.de) _1 + 2_
[Dies ist ein nicht-verschachtelter Link](http://www.de)

Wie Du reguläre Ausrücke in Java benutzt, setze ich
mal als bekannt voraus, ansonsten schau Dir
http://www.onjava.com/pub/a/onjava/2003/11/26/regex…
an.

Gruß,
-Andreas.

Hi Andreas.

Das kommt darauf an, was Du genau vor hast.
Wenn Du ein beliebiges HTML-Dokument nimmst

Ich wollte eigentlich nur wissen, ob das ueberhaupt geht,
da ich mit dem Pattern „“ keinen Erfolg hatte und ich
nicht wusste, wie genau man lt und gt behandelt.
Wie sich aber herausgestellt hat, habe ich lediglich das +
vergessen, um zu einem fuer mich schluessigen Ergebnis zu
kommen.

Danke fuer deine Muehe.
Patrick