Hallo liebe Community,
heute habe ich mich ein wenig auf Basis des hilfreichen FAQs
Grundzüge von Pattern-Matching und Split mit Pattern-Mathing beschäftigt.
Einige Probleme konnte ich dabei aber noch nicht eigenhändig lösen.
Grundlegend möchte ich ein Programm schreiben, das in der Lage ist, die Grafikadressen von Bildern einer Seite aus dem Seitenquelltext der jeweiligen Seite heraus zu lesen. Exemplarisch:
Das Bild mit der Adresse http://www.all-art.org/Visual%20History/modern%20era/mucha/28.jpg wird im Quelltext der dazugehörigen Seite (derjenigen Seite, in die es eingebettet ist) wie folgt erwähnt:
Diesen Code möchte ich nicht komplett erhalten, sondern nur den Teil ab http:// ODER .. bis jpg. Hier also:
Damit stellt sich die Frage:
Verwende ich mit
die richtige Zeichenreihenfolge für's Pattern-Matching? Ich fürchte nämlich, die Sache mit dem Maskierungs-\ hab' ich noch nicht richtig raus ...
Zweitens: Ich habe versucht eine Methode compare zu schreiben, die das Pattern-Matching durchführt. Diese Methode ist in eine while-Schleife eingebaut.
Ich hätte gerne, dass ich somit alle passenden Grafikadresse (hier zbsp: ../Visual%20History/modern%20era/mucha/28.jpg) als String in einem Array oder einer ArrayList speichern kann.
Wie mache ich das? Denn die Methode gibt doch nur ein boolean zurück, nicht aber die Adresse ...
Hier Auszüge aus dem Code:
Auszug aus der main:
heute habe ich mich ein wenig auf Basis des hilfreichen FAQs
Grundzüge von Pattern-Matching und Split mit Pattern-Mathing beschäftigt.
Einige Probleme konnte ich dabei aber noch nicht eigenhändig lösen.
Grundlegend möchte ich ein Programm schreiben, das in der Lage ist, die Grafikadressen von Bildern einer Seite aus dem Seitenquelltext der jeweiligen Seite heraus zu lesen. Exemplarisch:
Das Bild mit der Adresse http://www.all-art.org/Visual%20History/modern%20era/mucha/28.jpg wird im Quelltext der dazugehörigen Seite (derjenigen Seite, in die es eingebettet ist) wie folgt erwähnt:
HTML:
<img border="1" src="../Visual%20History/modern%20era/mucha/28.jpg" width="566" height="800"><br>
Diesen Code möchte ich nicht komplett erhalten, sondern nur den Teil ab http:// ODER .. bis jpg. Hier also:
HTML:
../Visual%20History/modern%20era/mucha/28.jpg
Damit stellt sich die Frage:
Verwende ich mit
Java:
String regex = "(http://|\\.\\.).*(jpg)";
Zweitens: Ich habe versucht eine Methode compare zu schreiben, die das Pattern-Matching durchführt. Diese Methode ist in eine while-Schleife eingebaut.
Ich hätte gerne, dass ich somit alle passenden Grafikadresse (hier zbsp: ../Visual%20History/modern%20era/mucha/28.jpg) als String in einem Array oder einer ArrayList speichern kann.
Wie mache ich das? Denn die Methode gibt doch nur ein boolean zurück, nicht aber die Adresse ...
Hier Auszüge aus dem Code:
Java:
public static boolean compare(String regex, CharSequence input )
{
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher( input );
return m.matches();
//gibt boolean zurück, es sollten aber auch die passenden Codeteile (also die BilderURL)
//als String zurück gegeben werden. Wie funktioniert das?
}
Auszug aus der main:
Java:
String line;
String regex = "(http://|\\.\\.).*(jpg)";
//liest so viele Zeilen aus wie vorhanden
while ((line = in.readLine()) != null)
//führt für jede Zeile compare durch
compare(regex, line)