Hallo Leute,
erstmal wuensch ich allen frohe Weihnachten.
Und auch wenn jetzt eigentlich die Zeit der Entspannung und Geruhsamtkeit herrschen sollte, haelt mich ein Programmierproblem vom vollstaendigen Glueck ab.
Ich bin ein ziemlicher JavaNeuling (komme eher aus der einfacheren imperativen PHP Programmierung) und muss nun ein kleines Datenverarbeitungsscript unter der Verwendung von Regulaeren Ausdruecken (hier ebenfalls nicht allzu konform) programmieren. Am besten ich schildere mal kurz das Problem:
Ich habe mehrere HTML Seiten die nach Daten durchsucht werden sollen. Dabei geht es um ziemlich grosse Seiten mit vielen Informationen - ich benoetige aber nur bestimmte, d.h. ich muss meine regulaeren Ausdruecke ziemlich explizit deklarieren. Z.B. versteckt sich im Quelltext eine Nummer, die ich haben moechte in folgender Struktur:
Die Nummer kommt im Quelltext oefters vor und das ist fuer jede Seite unterschiedlich. Dieses Konstrukt macht es aber eindeutig. Nun lese ich also den Quelltext mit Java ein und habe mir schon einen (sehr) kleinen regulaeren Ausdruck geschrieben:
Das funktioniert soweit schonmal.
Nun gibt es aber folgendes Problem: Ich brauche nur den Wert, der in Nummer drinsteht - habe aber keine konkrete Ahnung, wie ich den aus meinem SuchPattern extrahiert bekomme. Ich habe zwar schon wage Ideen, wie man es irgendwie mit Scanner oder appendReplacement() realisieren koennte, diese kommen mir aber nicht wirklich professionell vor - und deswegen wollte ich fragen, wie sowas am elegantesten geloest wird. Ueber Tipps und Anregungen waere ich sehr dankbar. Ich wuensch euch noch ein paar schoene Weihnachtstage.
mfg
m0mo
erstmal wuensch ich allen frohe Weihnachten.
Und auch wenn jetzt eigentlich die Zeit der Entspannung und Geruhsamtkeit herrschen sollte, haelt mich ein Programmierproblem vom vollstaendigen Glueck ab.
Ich bin ein ziemlicher JavaNeuling (komme eher aus der einfacheren imperativen PHP Programmierung) und muss nun ein kleines Datenverarbeitungsscript unter der Verwendung von Regulaeren Ausdruecken (hier ebenfalls nicht allzu konform) programmieren. Am besten ich schildere mal kurz das Problem:
Ich habe mehrere HTML Seiten die nach Daten durchsucht werden sollen. Dabei geht es um ziemlich grosse Seiten mit vielen Informationen - ich benoetige aber nur bestimmte, d.h. ich muss meine regulaeren Ausdruecke ziemlich explizit deklarieren. Z.B. versteckt sich im Quelltext eine Nummer, die ich haben moechte in folgender Struktur:
Code:
<tr><td align="left"><span style="font-size:12px;">[b]Nummer:&[/b]#15stelligeNummer#</span></td></tr>
Die Nummer kommt im Quelltext oefters vor und das ist fuer jede Seite unterschiedlich. Dieses Konstrukt macht es aber eindeutig. Nun lese ich also den Quelltext mit Java ein und habe mir schon einen (sehr) kleinen regulaeren Ausdruck geschrieben:
Code:
public Map<String,String> extract_data(DirectoryManager directory)
{
Map<String, String> regExp = new HashMap<String, String>();
regExp.put( "Nummer", "<tr><td align=\"left\"><span style=\"font-size:12px;\">[b]Nummer:&[/b]\\d{10,15}</span></td></tr>");
Map<String,String> matches = new HashMap<String,String>();
int number = directory.read_directory(dir);
for(int i=0;i<number;i++)
{
System.out.println("(" + (i+1) + ") Currently working on file: " + directory.get_filename(i));
for (String expression : regExp.values())
{
Pattern pattern = Pattern.compile(expression);
Matcher matcher = pattern.matcher(directory.read_file(i));
while (matcher.find())
{
System.out.println("I found the text " + matcher.group());
}
}
}
return matches;
}
Das funktioniert soweit schonmal.
mfg
m0mo