Pattern/Matcher-Gruppe() to obtain substring in Java?

UPDATE: Danke für all die tollen Antworten! Ich habe versucht, viele verschiedene regex-Muster, aber nicht verstehen, warum m.matches() war nicht dabei, was ich denke, sollte es tun. Wenn ich wechselte zu m.finden() statt, sowie die Anpassung der regex-Muster, ich war in der Lage, um irgendwohin zu gelangen.


Ich würde gerne die einem Muster entsprechen, in einen Java-string extrahieren und dann das Teil abgestimmt mit einem regex (wie Perl $& - operator).

Dies ist meine Zeichenkette "s": DTSTART;TZID=America/Mexico_City:20121125T153000
Ich möchte zum extrahieren des Teil - "Amerika/Mexico_City".

Dachte ich, ich könnte mit Pattern und Matcher und extrahieren Sie dann mit m.Gruppe (), aber es funktioniert nicht so, wie ich es erwartet habe. Ich habe versucht monkeying mit verschiedenen regex-strings und die einzige Sache, die scheint, zu schlagen auf m.matches() ist ".*TZID.*" ist sinnlos, da es nur die gesamte Zeichenfolge zurück. Könnte jemand mich aufklären?

 Pattern p = Pattern.compile ("TZID*:"); //<- change to "TZID=([^:]*):"
 Matcher m = p.matcher (s);
 if (m.matches ()) //<- change to m.find()
    Log.d (TAG, "looking at " + m.group ()); //<- change to m.group(1)
  • Sieht aus wie eine Zeile aus eine ics (iCal) Datei - warum nutzen Sie nicht ical4j.sourceforge.net oder gleichwertige?
  • In der Tat. Angefangen habe ich mit ical4j aber es schleuderte mit einem Fehler beim Parsen der ics-Datei, so verwerfen Sie. Ich kann versuchen es wieder, wenn ich mehr Funktionen als nur die Extraktion des DTSTART Linien.
InformationsquelleAutor wufoo | 2012-12-07
Schreibe einen Kommentar