Hallo,
bin mir nicht sicher ob dieses Unterforum das richtige ist, und ob das Problem eher Java oder Reguläre Ausdrücke betrifft. In letzterem bin ich Neuling, in Java etwas erfahrener.
Ich lese den Quelltext einer Webseite aus und suche mit folgendem Regex im nachfolgenden Code den Text zwischen den <address>-Tags ("Ethiopia"):
(www.ethiopiabook.com/whitepages/?start=1&q=0111235139)
In diesem Fall geht es nur um den Teil nach dem | , den ersten Teil brauch ich für komplexere Ergebnisse bzw. andere Webseiten.
Mit dem Tool von www.nettz.de/Service/regexp/index.cgi klappt das alles auch sehr gut, nur in meinem Java-Programm erhalte ich Fehler. Die Auswertung erfolgt über
Die Fehlermeldung ist:
betrifft also offenbar nur den ersten Teil des Oder-Ausdrucks (der bei anderen Seiten/Ergebnissen gut funktioniert).
Kann mir da jemand helfen?
(Falls es jemanden näher interessiert: ich bin dabei mein unter www.ip-phone-forum.de/showthread.php?t=129270 veröffentlichtes, in VB programmiertes Tool nochmal neu in Java zu programmieren. Im konkreten Fall geht es um die Inverssuche in 17 afrikanischen Telefonbüchern.)
Gruß Tweedledee
bin mir nicht sicher ob dieses Unterforum das richtige ist, und ob das Problem eher Java oder Reguläre Ausdrücke betrifft. In letzterem bin ich Neuling, in Java etwas erfahrener.
Ich lese den Quelltext einer Webseite aus und suche mit folgendem Regex im nachfolgenden Code den Text zwischen den <address>-Tags ("Ethiopia"):
Code:
(?:<address>[^,]*?(?:,?[^,]*?)?,([^<]*?)</address>)|(?:<address>([^<]*)<)
Code:
[list=1][*]<h4>Emb Federal Repoblic German</h4><address>Ethiopia</address>[b]011 123 5139[/b][/list]
(www.ethiopiabook.com/whitepages/?start=1&q=0111235139)
In diesem Fall geht es nur um den Teil nach dem | , den ersten Teil brauch ich für komplexere Ergebnisse bzw. andere Webseiten.
Mit dem Tool von www.nettz.de/Service/regexp/index.cgi klappt das alles auch sehr gut, nur in meinem Java-Programm erhalte ich Fehler. Die Auswertung erfolgt über
Code:
public static String findMatches( String regexp, CharSequence s ) {
String tmp = "";
Pattern pattern = Pattern.compile(regexp);
Matcher matcher = pattern.matcher(s);
matcher.find();
try{
tmp = matcher.group(1);
}catch (IllegalStateException e) {
System.out.println("Exception in findMatches: " + regexp);
}
return tmp;
}
Code:
Exception in findMatches: <address>([^,]*?(?:,?[^,]*?)?),[^<]*?</address>
betrifft also offenbar nur den ersten Teil des Oder-Ausdrucks (der bei anderen Seiten/Ergebnissen gut funktioniert).
Kann mir da jemand helfen?
(Falls es jemanden näher interessiert: ich bin dabei mein unter www.ip-phone-forum.de/showthread.php?t=129270 veröffentlichtes, in VB programmiertes Tool nochmal neu in Java zu programmieren. Im konkreten Fall geht es um die Inverssuche in 17 afrikanischen Telefonbüchern.)
Gruß Tweedledee