GÜNCELLEME: Tüm harika yanıtlar için teşekkürler! Çok farklı regex desenlerini denedim ama m.matches() 'in neden yapması gerektiğini düşündüğüm şeyi yapmadığını anlamamıştım. Bunun yerine, m.find()'a geçtiğimde, normal ifadeyi ayarlamanın yanı sıra bir yere ulaşabildim.Java'da substring elde etmek için Pattern/Matcher group()?
I (Perl'in $ & operatör gibi) regex kullanarak eşleştirilmiş kısmını bir Java dizesinde bir desenle eşleşen ve sonra ayıklamak istiyorum
.
Bu benim kaynak dizgisi "s": DTSTART;TZID=America/Mexico_City:20121125T153000
"America/Mexico_City" kısmını ayıklamak istiyorum.
Desen ve Eşleştirici'yi kullanabileceğimi düşündüm ve sonra m.group() kullanarak çıkarım ancak beklediğim gibi çalışmıyor. Ben farklı regex dizeleri ile maymun çalıştım ve m.matches() isabet gibi görünüyor tek şey sadece tüm dize döndürür anlamsız ".*TZID.*"
olduğunu. Birisi beni aydınlatır mı?
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)
bir ics (iCal) dosyasından bir çizgi gibi görünüyor - neden http://ical4j.sourceforge.net/ veya eşdeğerini kullanmıyorsun? – jrtc27
Gerçekten. Ical4j ile başladım ama ics dosyasını ayrıştırırken bir hata ile fırladı, bu yüzden onu terk etti. Sadece DTSTART satırlarını ayıklamaktan daha fazla işlevsellik gerekiyorsa tekrar deneyebilirim. – wufoo