wyrażenia regularne

84 views
Skip to first unread message

lkuczera

unread,
Apr 22, 2011, 4:20:17 AM4/22/11
to Polish Scala Group
Witajcie.
Mam taki kod:
val r = "\\d\\d".r
val arr = "alkdjf 34 adlkjf 34 aldkjf".split

Teraz to co chcę zrobić to przeiterować tablicę zwracając None jeżeli
wyrażenie nie będzie pasowało do chociażby jednego elementu i przerwać
iterację lub zwrócić wydłubane wartości. Nie wiem jak to zrobić
funkcyjnie w jednym przbiegu iteracji.

Moje rozwiązanie to albo dwie iteracje albo poprzez var'y.

Maciej Biłas

unread,
Apr 22, 2011, 4:48:01 AM4/22/11
to polish-sc...@googlegroups.com
2011/4/22 lkuczera <kuk...@gmail.com>:

arr.filter(r.findFirstIn(_) != None) match {
case a if a.length > 0 => Some(a)
case _ => None
}

Zwróci wszystkie 34-ki.

Podejrzewam, że tym wariantem byłeś zainteresowany. Jeżeli jednak
chciałeś tylko pierwszy wynik to skorzystaj po prostu z metody find.

Pozdrawiam,
Maciej
--
Maciej Biłas

Reply all
Reply to author
Forward
0 new messages