K
Karotte21
Gast
Guten Tag,
Ich habe folgendes Problem:
Meine application bekommt von der FB Graph API JSON daten zurück, die ich bereits in ein JSON Eintrag geparst habe.. hier 2 paar sample-Einträge aus dem Array:
Ich bin nun genau in den "message":"Points: Name:" part interessiert, also schaut mein javaRegex wie folgt aus:
item.toString entspricht genau den oben geposteten strings!
Was ist nun mein Problem?
Nun, laut RegEx: online regular expression testing match der Regex von weiter oben genau das was ich brauche, nämlich "group(0) => "message":"Points: 294; Name: lukas""
Der Regex ist ja sehr simpel, ich bin ja nicht dumm :>
Im Javaprogramm tut er das jedoch nicht, sobald ich versuche auf group(0) zuzugreifen, bekomme ich ein INFO: java.lang.IllegalStateException: No match found;
Und nun der Witz: Selbst mit einem ".*" als Regex (der bei p.matches("REGEX", "STRING") true ausgibt, krieg ich bei p.matcher und dem Versuch aus group zu lesen genau die gleiche Exception!
Wo ist mein Denkfehler? Ich programmier normalerweise in allem, nur nicht in Java, aber dennoch sollte so was simples doch machbar sein
Ich sollte vielleicht noch dazu sagen, dass das ganze eine ICEFaces app ist und im Browser läuft, aber soweit ich das sehe verwende ich doch eh die standard java regex class.. also sollte das keinen Unterschied machen!
Ich habe folgendes Problem:
Meine application bekommt von der FB Graph API JSON daten zurück, die ich bereits in ein JSON Eintrag geparst habe.. hier 2 paar sample-Einträge aus dem Array:
INFO: {"message":"Points: 274; Name: patrick","id":"182396081803634_206549349388307","application":{"id":"182396081803634","name":"EWA_SS11"},"from":{"id":"182396081803634","name":"EWA_SS11"},"created_time":"2011-06-15T10:52:06+0000","type":"status","updated_time":"2011-06-15T10:52:06+0000"}
INFO: {"message":"Points: 294; Name: lukas","id":"182396081803634_206549026055006","application":{"id":"182396081803634","name":"EWA_SS11"},"from":{"id":"182396081803634","name":"EWA_SS11"},"created_time":"2011-06-15T10:50:29+0000","type":"status","updated_time":"2011-06-15T10:50:29+0000"}
Ich bin nun genau in den "message":"Points: Name:" part interessiert, also schaut mein javaRegex wie folgt aus:
Java:
Pattern p = Pattern.compile("\"message\":\".*?\"");
Matcher m;
//Und schließlich in der for schleife//
item = result.get(i);
m = p.matcher(item.toString());
item.toString entspricht genau den oben geposteten strings!
Was ist nun mein Problem?
Nun, laut RegEx: online regular expression testing match der Regex von weiter oben genau das was ich brauche, nämlich "group(0) => "message":"Points: 294; Name: lukas""
Der Regex ist ja sehr simpel, ich bin ja nicht dumm :>
Im Javaprogramm tut er das jedoch nicht, sobald ich versuche auf group(0) zuzugreifen, bekomme ich ein INFO: java.lang.IllegalStateException: No match found;
Und nun der Witz: Selbst mit einem ".*" als Regex (der bei p.matches("REGEX", "STRING") true ausgibt, krieg ich bei p.matcher und dem Versuch aus group zu lesen genau die gleiche Exception!
Wo ist mein Denkfehler? Ich programmier normalerweise in allem, nur nicht in Java, aber dennoch sollte so was simples doch machbar sein
Ich sollte vielleicht noch dazu sagen, dass das ganze eine ICEFaces app ist und im Browser läuft, aber soweit ich das sehe verwende ich doch eh die standard java regex class.. also sollte das keinen Unterschied machen!
Zuletzt bearbeitet von einem Moderator: