regulärer Ausdruck HTML

SirBaros

Bekanntes Mitglied
Hallo,

ich habe einen String der Html Code beinhaltet und will mit regulaerem Ausdruck nach <div class="d_box"> <h2>Test</h2>
filtern so dass ich nur Test herausbekomme. Zwischen den beiden Tags div und h2 ist ein Leerzeichen.

Bitte um Hilfe,

Tausend dank

Html String:
<div class="d_box"> <h2>Test</h2>

Ergebnis sollte sein:
Test
 
Zuletzt bearbeitet von einem Moderator:
Dafür brauchst du keinen regulären Ausdruck, falls du genau diesen String suchst. Da reicht

htmlString.indexof("<div class=\"d_box\"> <h2>Test</h2>")

und dann weiter rechnen zum Test.

Der reguläre Ausdruck wäre - oh Wunder - "<div class=\"d_box\"> <h2>(Test)</h2>".

Falls das Test variabel ist, halt "<div class=\"d_box\"> <h2>([^<>]+)</h2>"
 
Zuletzt bearbeitet:
Vielen Dank.

Wie waere es wenn ich vor und nach <div class=\"d_box\"> <h2>([^<>]+)</h2> noch Tags stehen habe, wie krieg ich die alle weg? Kann ja auch sein, dass h2 mehrmals vorkommt.

z.b. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
<head> .....
 
Vielleicht ist die Lösung, nicht
Code:
matcher.matches()
zu nehmen, sondern
Code:
matcher.find()
?

Oder ich habe die Frage nicht verstanden.
 
Ja danke, dass habe ich auch schon gemacht

aber ich hab halt immer noch im Ergebnis ein paar Tags. Die sollen auch noch weg.

Also momentan ist das Ergebnis mit Pattern pattern = Pattern.compile("<div class=\"hd\">.*?</div>");
<div class="hd">Samstag, 28.05.2011</div>

Mit deinem Regulaeren Ausdruck gings net, da kam immer keine Loesung raus
Pattern pattern = Pattern.compile("<div class=\"d_box\"> <h2>([^<>]+)</h2>");

Java:
 Pattern pattern = Pattern.compile("<div class=\"d_box\"> <h2>([^<>]+)</h2>");
Matcher matcher = pattern.matcher(Line);
			
	
while (matcher.find()) {


System.out.println(matcher.group());
			}
 
Zuletzt bearbeitet:
Dafür brauchst du keinen regulären Ausdruck, falls du genau diesen String suchst. Da reicht

htmlString.indexof("<div class=\"d_box\"> <h2>Test</h2>")

... und was ist wenn da nicht "Test" sonder "mein Titel" drin steht? Ich denke das mit dem Test war nur ein Beispiel 🙂
Ach ja und bei html ist es ja auch nicht gegeben, dass immer alles auf einer Zeile steht - oder dass der Ganze Code aus nur einer Zeile besteht ...
 

Zurück
Oben