[Java] Problem mit RegEx

#1
Ich habe mal wieder ein Problem mit einem meiner Hassthemen, Regex.

Gegeben ist folgender Ausschnitt einer HTML-Datei bei dem ich auf die einzelnen Termine den Match haben möchte.
Code:
"socialHookFacebook":"h**p://facebook.com/sharer.php?u=h**p%3A%2F%2Fdoodle.com%2F...","state":"OPEN","fcOptions":[{"id":0,"allDay":true,"start":1354320000,"end":1354406399},{"id":1,"allDay":true,"start":1355529600,"end":1355615999},{"id":2,"allDay":true,"start":1355702400,"end":1355788799},{"id":3,"allDay":true,"start":1356134400,"end":1356220799},{"id":4,"allDay":true,"start":1356739200,"end":1356825599},{"id":5,"allDay":true,"start":1357344000,"end":1357430399},{"id":6,"allDay":true,"start":1357516800,"end":1357603199},],"prettyUrl":"http://doodle.com/..."
Ich habe folgenden Code:
Code:
String appointmentRegex = "/{\"id\":([0-9]||[0-9][0-9]),\"allDay\":true,\"start\":[0-9]{10},\"end\":[0-9]{10}}/g";
Pattern p = Pattern.compile(appointmentRegex, Pattern.MULTILINE);
Matcher m = p.matcher(input);
		while (m.find())
		{
			appendTextField(m.group(0));
		}
Als Fehlermeldung bekomme ich:
E/AndroidRuntime(2819): java.util.regex.PatternSyntaxException: Syntax error in regexp pattern near index 1:
E/AndroidRuntime(2819): {"id":([0-9]||[0-9][0-9]),"allDay":true,"start":[0-9]{10},"end":[0-9]{10}}
E/AndroidRuntime(2819): ^
E/AndroidRuntime(2819): at java.util.regex.Pattern.compileImpl(Native Method)
E/AndroidRuntime(2819): at java.util.regex.Pattern.compile(Pattern.java:407)
E/AndroidRuntime(2819): at java.util.regex.Pattern.<init>(Pattern.java:390)
E/AndroidRuntime(2819): at java.util.regex.Pattern.compile(Pattern.java:374)
Die Fehlermeldung sagt zwar recht eindeutig, dass der Fehler in meinem Regex liegt, allerdings ist mir der Grund nicht klar und ich finde bei Google auch keine Hinweise zu dem Problem. Grundsätzlich sollte es doch kein Problem sein, wenn da Anführungsstriche im String sind.
 
#2
Na toll, wie es immer ist, kaum ist die Frage geschrieben, findet man die Lösung selber. Die geschweiften Klammern am Anfang und am Ende waren das Problem. Diese mit einem Backslash versehen ging es dann.
 
#3
Code:
"socialHookFacebook":"h**p://facebook.com/sharer.php?u=h**p%3A%2F%2Fdoodle.com%2F...","state":"OPEN","fcOptions":[{"id":0,"allDay":true,"start":1354320000,"end":1354406399},{"id":1,"allDay":true,"start":1355529600,"end":1355615999},{"id":2,"allDay":true,"start":1355702400,"end":1355788799},{"id":3,"allDay":true,"start":1356134400,"end":1356220799},{"id":4,"allDay":true,"start":1356739200,"end":1356825599},{"id":5,"allDay":true,"start":1357344000,"end":1357430399},{"id":6,"allDay":true,"start":1357516800,"end":1357603199},],"prettyUrl":"http://doodle.com/..."
Das ganze sieht mir nach validem JSON aus. Warum hier mit dem Donnervogel Regex darauf los? Einfach parsen und auswerten. Dünkt mich hier einfacher. :)

Und ich behaupte mal, JSON-Libraries existieren wie in vielen Sprachen wie Sand am Meer.
 
#4
Auf die Idee, dass das Json sein könnte, bin ich noch gar nicht gekommen, aber ich habe ja jetzt eine Lösung, wie ich genau das aus der Seite herausbekomme, was ich haben möchte.
Will mich da jetzt lieber mit der Weiterverarbeitung beschäftigen als mit einem alternativen Weg, diese Daten zu erhalten.
 
Oben