Demotehtävät 1A TIEA241 Automaatit ja kieliopit ⋆1. Laadi regexp

Demotehtävät 1A
TIEA241 Automaatit ja kieliopit
Demotilaisuudet pidetään 10.–11.11.2015. Tarkista ajat ja paikat Korpista.
Demohyvitysjärjestelmä on selostettu kurssin verkkosivustossa.
Tähdellä (?) merkityt tehtävät ovat erityisen suositeltuja. Mahdolliset muut tehtävät ovat lisätehtäviä, jotka otetaan
huomioon tehdyissä tehtävissä mutta ei tehtävien kokonaismäärää laskettaessa. Näin yli 100 % demohyvitys on periaatteessa
mahdollinen.
Tässä tehtäväpaperissa on 1 sivua.
?1.
Laadi regexp, jonka avulla egrep-ohjelma löytää tekstitiedostosta kaikki
(a) vähintään kolme ääkköstä (å, ä, ö) sisältävät rivit
(b) HTTP-urlin sisältävät rivit (älä kuitenkaan tarkista urlin muodollista oikeellisuutta)
(c) HTTP- tai HTTPS-urlin sisältävät rivit (älä kuitenkaan tarkista urlin muodollista oikeellisuutta)
(d) Java-kommentin aloittavat tai lopettavat rivit
Testaa ne egrep-ohjelmalla.
?2.
Regexpin alkuun voidaan lisätä sirkumfleksi (^) tarkoittamaan rivin alkamista. Vastaavasti regexpin
loppuun voidaan kirjoittaa dollarimerkki ($) merkitsemään rivin loppua. Näin regexp ^42$ löytää
täsmälleen ne rivit, jotka sisältävät luvun 42 eikä mitään muuta. Rivinvaihtomerkkiä ei lasketa rivin
osaksi.
Kirjoita regexp, jonka avulla egrep-ohjelma löytää tekstitiedostosta kaikki
(a) tyhjät rivit
(b) rivit, joilla on täsmälleen yksi merkki
(c) rivit, joissa ei esiinny ääkkösiä
Testaa ne egrep-ohjelmalla.
?3.
Laadi Java-kielellä tai muulla valitsemallasi ohjelmointikielellä1 , käyttämättä regexpejä tai mitään
vastaavaa tekniikkaa, ohjelma, joka lukee tiedoston ja tulostaa siitä kaikki ne rivit, jotka egrepohjelma tulostaisi regexpillä (kissa|koira)+kouluttajat?.2
Koeta tehdä ohjelmastasi mahdollisimman helppolukuinen. Testaa se.
?4.
Tutustu Java-kielen regexp-kirjastoon java.util.regex tai jonkin muun valitsemasi kielen vastaavaan kirjastoon3 ja laadi edellisessä tehtävässä kuvattu ohjelma tällä kertaa regexp-kirjastoa hyväksi
käyttäen.
Koeta tehdä ohjelmastasi mahdollisimman helppolukuinen. Testaa se.
1
Huolehdi, että ohjelmasi voidaan kääntää ja testata demosalissa.
Piste ei tässä tapauksessa sisälly regexpiin.
3
Huolehdi, että ohjelmasi voidaan kääntää ja testata demosalissa.
2
1