Regex, HTML Bereich finden

Spyke

Premium-User
Hi,
bin ziemlich neu bei Regex und hät gern ein problem :D

für einen Parser will ich verschiedene HTML Bereich finden.
Sprich eine Bereich wie zum Beispiel:
HTML:
<div style="irgendwas;"> irgend nen Text</div>
Diesen gesamten DIV Bereich von <div..> bis </div>, zuzüglich der Tags selber will ich bekommen.

Mein bisheriger Regex:
Code:
@"<\s*(?!/)\s*(?'htmltag'\w*).*?>.*?<\s*/\s*(?(htmltag)(?=))>"
Ich dachte mir halt über die Gruppe htmltag finde ich den Namen des Tags raus und nutze diese Gruppe am Schluss um den End Tag zu finden.
(Einfach um ev. nochmals untergeordnete HTML Tags aussen vor zu lassen)
Bei diesem Regex findet er allerdings nichts.

Probiere ich es direkt so:
Code:
@"<\s*(?!/)\s*(?'htmltag'\w*).*?>.*?<\s*/\s*div>"
Ich setzte also am Ende direkt den div Tag, dann funktioniert es.
Also weiße ich doch eigentlich blos die Gruppe irgendwie falsch zu :confused:

Hoffe ihr habt mich verstanden und könnt helfen.
Wie muss ich den Regex korrekt aufbauen.

Edit:
Könnte das vielleicht ein Mod. ins .Net Cafe verschieben, hab gerade erst gemerkt das ichs bei Windows Forms erstellt hab.
 
Zuletzt bearbeitet:
Reguläre Ausdrücke allein sind dafür nicht geeignet. Denn stell dir mal folgendes Beispiel vor:
HTML:
<div>
	<div>
		<div>…</div>
		<div>…</div>
		<div>…</div>
	</div>
</div>
 
Die letzten beiden divs macht er nicht zu.
Ich probiers später mal weiter, vielleicht krieg ichs doch mit Regex hin :rolleyes:
Ansonsten bau ich halt doch ne Schleife ein.
 

Neue Beiträge

Zurück