UPDATE: Grazie per tutte le grandi risposte! Ho provato diversi schemi di espressioni regolari ma non ho capito perché m.matches() non stava facendo quello che penso dovrebbe fare. Quando sono passato a m.find() invece, oltre a regolare il modello regex, sono riuscito a ottenere da qualche parte.Pattern/Matcher group() per ottenere la sottostringa in Java?
mi piacerebbe abbinare un modello in una stringa Java e quindi estrarre la parte corrispondente utilizzando un'espressione regolare (come operatore di Perl $ &).
Questa è la mia stringa di origine "s": DTSTART;TZID=America/Mexico_City:20121125T153000
Voglio estrarre la parte "America/Mexico_City".
Pensavo di poter utilizzare Pattern and Matcher e quindi estrarre utilizzando m.group() ma non funziona come mi aspettavo. Ho provato a monkeying con diverse stringhe regex e l'unica cosa che sembra colpire su m.matches() è ".*TZID.*"
che è inutile in quanto restituisce solo l'intera stringa. Qualcuno potrebbe illuminarmi?
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)
sembra una linea da un file ICS (iCal) - perché non usare http://ical4j.sourceforge.net/ o equivalente? – jrtc27
Infatti. Ho iniziato con ical4j ma è stato scagliato da un errore durante l'analisi del file ics, quindi l'ho rimosso. Potrei provare di nuovo se ho bisogno di più funzionalità rispetto all'estrazione delle linee DTSTART. – wufoo