ich lese mittels meinem kleinen programm einen ganzen quellcode aus.
nun möchte ich gerne jede zeile einzeln parsen und alle img tags rausfischen.
die img tags haben die syntax <img src=“.... .gif“ height=“..“, width=“..“>.
Wie kann ich da gezielt die Datennamen rausfischen?
Wie kann ich denn mittels der Scanner Klasse das realisieren?
ich weiß ich kann über die scanner klasse einen delimiter definieren aber ich weiß nicht genau wie der aussehen soll..
Wäre cool wenn ihr mir auf die sprünge helfen könntet.
Scanner s =newScanner(newBufferedReader(newFileReader(dateiname)));
s.useDelimiter ("<img src=\"(.*?)\\.gif\" height=\"(.*?)\" width=\"(.*?)\">");while(s.hasNext()){System.out.println(s.next());}
leider spuckt der mir die ganze quelltext datei komplett aus von oben bis unten.
hast du ne ahnung wodran das liegen könnte? ich möchte wie gesagt die img tags analysieren und daraus den dateinamen extrahieren.. wäre nett wenn du mir erneut helfen könntest
*Edit
Kann es sein dass ich die Scanner Klasse falsch verstanden habe?
Sie splittet den Text in Zeilen und dann muss ich in seperat die Zeilen mittels einen regulären ausdruck prüfen?
try{Scanner s =newScanner(newFile("Quelltext.html"));
s.useDelimiter (System.getProperty("line.separator"));String pattern ="<img src=\"(.*?)\\.gif\" height=\"(.*?)\" width=\"(.*?)\">";String tokens[]=null;while(s.hasNext()){
tokens = pattern.split(s.next());for(int i =0; i < tokens.length; i++)System.out.println(tokens[i]);}
s.close();}catch(Exception e){System.out.println (e);}
Aber ich bekomme eine Sehr komische ausgabe:
Java:
<img src="(.*?)\.gif" height="(.*?)" width="(.*?)"><img src="(.*?)\.gif" height="(.*?)" width="(.*?)"><img src="(.*?)\.gif" height="(.*?)" width="(.*?)"><img src="(.*?)\.gif" height="(.*?)" width="(.*?)"><
i
m
g
s
r
c
=
"
(.*?)
\
.
g
i
f
"
.....<img src="(.*?)\.gif" height="(.*?)" width="(.*?)">
java.util.regex.PatternSyntaxException:Unclosed character class near index 14/* <![CDATA[ */
Wenn ich den Dateinamen extrahiere mit match.group(1) dann ohne die Dateiendung.
Wie kann ich den Ausdruck so umändern, dass automatisch die DateiEndung beigefügt wird?
Sonst muss ich angeben: match.group (1) + ".gif"...