Feladatgyűjtemény a reguláris kifejezésekhez
A reguláris kifejezésekhez itt találsz oktatóvideókat.A feladatokat tetszés szerinti nyelven és környezetben oldhatod meg. Az informatikai feladatgyűjtemények szokása szerint szándékosan nincsenek pontosan specifikálva, ahogy a való élet feladatai sem – a nyitott kérdéseket neked kell tisztáznod. Nincsenek nehézségi sorrendben. Sok esetben magad alakíthatod a nehézségi fokukat. Arról is szabadon dönthetsz, hogy a feladat mekkora részét célszerű reguláris kifejezésekkel megoldani, és mit egyszerűbb hagyományos módon.
- Készíts telefonszámokat ellenőrző programot! Nem a felhasználónak fogjuk előírni, hogy milyen alakban adja meg a számot, hanem a bevitt stringből egy mozdulattal eldobunk mindent, ami nem számjegy, valamint az esetleges 06 prefixet, amit sokan a szám részének hisznek, majd a maradékot ellenőrizzük (érvényes magyar telefonszám), és siker esetén csak számjegyekkel tároljuk. Készíts kétféle kimenetet a tárolt adatokhoz: az egyik emberi szemnek olvashatóan adja vissza szabványos formában (pl. (30) 123-4567), a másik egy automatikus SMS-küldő által elvárt formátumban (pl. 36301234567)!
- Ellenőrizd egy stringről, hogy érvényes DNS-szekvencia-e!
- Ellenőrizd egy stringről, hogy érvényes ISBN-szám-e! Megadhatják szóközökkel, kötőjelekkel vagy tagolatlanul is.
- Egy weboldalban h1, h2, h3 szintű címek vannak. Tegyél mindegyik elé horgonyt, és készíts belőlük tartalomjegyzéket a lap tetejére!
- Vegyél egy HTML-táblázatot, és készíts belőle tabulátorokkal határolt szöveget! Az egyszerűség kedvéért tegyük fel, hogy nincs benne colspan és rowspan, de a sorok és cellák nyitótagjeiben lehetnek formázókódok. Ha nem lehetnének, talán nem is lenne indokolt reguláris kifejezéseket használni.
- Egy bizonyítványban jeles (5), jó (4) stb. alakban adták meg a jegyeket. Számold ki a tanulmányi átlagot! Pótold az esetleg hiányzó szóközöket, nyitó/csukó zárójeleket!
- Egy táblázatban IPv4-es címek vannak, vegyesen hexadecimális és decimális alakban, és némelyikben esetleg elhagyták a csoportok vezető nulláit. Ellenőrizd az érvényességüket, és hozd egyforma alakúra őket!
- Készíts egy txt formátumú szöveget, amelyben http vagy https protokollal
megadott URL-ek vannak!
- Alakítsd át HTML-kódra úgy, hogy mindegyik URL linkelve legyen!
- Bővítsd további protokollokkal (pl. alakítson át e-mail-címeket, telefonszámokat, protokollmentesen megadott URL-eket)!
- Legyen az eredeti szövegedben egy lazán rendezett táblázat.
Jelenítsd meg a linkben a megadott nevet! Gondolj a
gyengénlátókra is! Pl.:
Magyar Elektronikus Könyvtár http://mek.oszk.hu/
Reguláris kifejezések http://64.hu/i/index.php?regex
Természetesen a táblázatrészen kívüli más szövegrészekkel is számolni kell. - Válassz ki egy domaint, amit sajátnak tekintesz. Az ehhez tartozó linkek ugyanabban az ablakban nyíljanak meg, a többiek egy másikban!
- Készíts egy számozott felsorolást, és alakítsd át számozott HTML-listává!
- Egy szövegben legyenek mindenféle alakú dátumok. Pl. a hónap lehet számmal, teljesen kiírt alakban, rövidítve. Mindenféle helyesírási hibák fordulhatnak elő, pl. az évszám vagy más rész után hiányzik a pont, vagy a 2017. július 4.-én ragozott alakban hibásan van a pont (toldalék előtt elhagyjuk). A 2017. május szövegben (pl. havi összesítés) kell pont, a 2017 májusa vagy 2017 májusában szövegben az évszám után nem szabad pontnak lennie. Javítsd ki a hibákat (eldöntheted, hogy egységesíted a formátumot vagy az eredeti formátumhoz akarsz hű maradni, és csak a hibát javítod), valamint írd a dátumok után HTML-megjegyzésbe az egységesített alakjukat (pl. 20170704)! gondolj rá, hogy a 20035123 csak formailag hasonló, de nem lehet dátum, tehát nem kezelendő. A feladat ezerféle alakban megfogalmazható, korlátlanul variálható, bővíthető, egyszerűsíthető, pontosítható, bonyolítható. Készíthetsz olyan programot, amelyik végigmegy a találatokon, és mindegyikhez felajánl egy javítást, de te egy i/n választással eldöntheted, hogy kéred-e (helyesírási javításoknál ez a követendő eljárás).
- Keresd meg egy szövegben, hogy minden kinyitott zárójelnek van-e az adott bekezdésen belül csukópárja!
- A http://valasztas.hu/dyn/pv14/szavossz/hu/M01/T003/szkkiv.html lapról nyíló aloldalakon láthatóak a 2014-es országgyűlési választások Budapest III. kerületi szavazóköreinek eredményei. Ezekre milliónyi feladatot lehet kitalálni, pl.:
- Készíts tábázatot az egyes jelöltekre szavazókörönként leadott szavazatokból!
- Mely nemzetiségek listáira érkezett érvényes szavazat a kerületben?
- Rendezd sorba a szavazóköröket a részvételi arány szerint!
- Jól adták-e össze a számokat, a pártlistákra leadott szavazatok összege megegyezik-e a közétett kerületi eredménnyel?
- Készíts egyszerű szoftverdokumentáló programot a kedvenc programnyelvedhez! (Ez olyan, mint amikor fordítót íratnak az egyetemen. Persze, hogy száz jobbat találsz készen a neten, de érdemes eljátszani vele.)
- Ellenőrizz egy CSS-kódot, hogy a színt jelző tulajdonságok után érvényes hexadecimális színkód van-e! A névvel jelölt színeket hagyjuk ki az egyszerűség kedvéért, de a hexadecimális kód lehet kis- és nagybetűs, lehet háromkarakteres rövidített alak, lehet szóköz a tulajdonság és az érték között vagy nem stb. Vegyél fel egy véges készletet a vizsgált tulajdonságokból.
- Tervezz meg egy szabványos adatlapot! Pl. beteg kezelőlapja, növénygyűjtemény adatai, banki átutalási űrlap, forgalmi engedély, MX-rekord – a lehetőségek korlátlanok. A feladat egyszerű: ellenőrizd, hogy jól van-e kitöltve! Például a bankszámlaszám lehet 16 vagy 24 jegyű, 8 számjegyenként kötőjellel vagy anélkül.
- Ha nem Pythonban tanítod a programozást, akkor sajnos a gép nem fogja elvégezni helyetted a behúzások ellenőrzését, de a Python értelmezője sem végez komplett formai ellenőrzést. Írjál programot a kedvenc nyelvedhez, amelyik ellenőrzi az általad előírt formai követelményeket a kódban! Ha a diák kódja nem teljesíti a követelményt, és te szigorú vagy, akkor sajnos nem tudsz válaszolni a „miért nem működik?” kérdésére. Adhatsz hibapontokat is, és bizonyos pontszám alatt csak figyelmeztetés jár. Illetve ha egy webes űrlapon keresztül kell beadnia a feladatot, a hibásan formázott kódot a program azonnal visszadobhatja, és nem fogadja el beadottként.
- Hasonlíts össze két szöveget vagy programkódot! Van-e bennük a megadott karakterszámnál hosszabb egyező részlet? Ez egy plágiumellenőrző program alapja lehet.
- Olvasd be programmal a 2016. május 18-i középszintű informatikaérettségi forrásai közül a szinesz.txt állományt, és válaszd ki azokat a színészeket, akik csak a keresztnevüket változtatták meg!
- Olvasd be a 2015. május 15-i idegen nyelvű középszintű informatikaérettségi forrásai közül a film.txt állományt!
- Gyűjtsd ki belőle a „Jancsi és Juliska” típusú, igen fantáziadús filmcímeket! Ezeket onnan ismerjük fel, hogy két nagy kezdőbetűs szó között egy „és” áll. Külön listában hozzáveheted azokat is, amelyekben a két személynév után még további szavak vannak. Próbáld megoldani ugyanezt regex nélkül is.
- Sorold fel azokat az állatokat és más lényeket, amelyekről mese készült! („Mese…” kezdetű filmcímek.) Van, amelyiknek a címéből kimaradt a „mese” szó, de mégis idetartozik?
- Sorold fel a filmcímekben előforduló írásjeleket!
- Az „Ügyes vagyok, tiszta vagyok” is egy sablon. Mely címekben vannak még ismétlődő szavak?
- Keress olyan címpárokat, amelyekben legalább két egymás melletti szó azonos alakban szerepel! (Súgás: az Iciri-piciri előfordul kötőjellel és szóközzel is, az utóbbi nyilván helyesírási hibás.)
- Hány címben van számjegy?
- Oldd meg az előző két feladatot program helyett SQL-ben (pl. MySQL)! Mazochisták egy kis utánaolvasással Accessben is próbálkozhatnak.
- Nyisd meg szerkesztésre a Magyarország kormányfőinek listája cikket, és másold ki magadnak a wikiforrást! (Ha vizuális szerkesztőben nyílik meg, keresd meg a forrásszöveg szerkesztése opciót!) Készíts belőle egy egyszerű listát, amely csak a miniszterelnök neve, hivatali idő kezdete, hivatali idő vége adatokat tartalmazza tabulátorokkal elválasztva, az eredeti sorrendben!
-
Az oktatóvideók oldalán látható táblázat egy saját hevenyészett
wikiszerű szintaxissal készült, hogy egyszerűbb legyen kitölteni.
- Ha a sor a th| stringgel kezdődik, és nincs benne több függóleges vonal, akkor egy több oszlopra kiterjedő fejlécsor lesz belőle (a colspan értékét a függvény paraméterként kapja meg, itt 3).
- Ha a sor a th| stringgel kezdődik, és van benne több függóleges vonal, akkor az első vonal utáni részt a függőleges vonalak mentén szétdobja fejléccellákra (th).
- Minden más esetben a függvény függőleges vonalakat keres, és ezek mentén szétdobja a sort normál táblázatcellákra (td).
th|Első videó th|Példa|Perc|Nyelv Bevezetés|00:00|magyar Vezetéknév, keresztnév alakban felsorolt nevek vessző nélküli átírása az országnak megfelelő névsorrendben|06:14|Python
Írd meg a táblázatot előállító függvényt! A színekkel most ne törődj.