Általánosságban
A reguláris kifejezések nagyon jól alkalmazhatók különböző formátumok (HTML, XML, CSV, ...) közti átváltásokban.
Ezek gyakorlását segíti ez a feladatsor. Minden feladatnak lesz egy kódneve, amire a következőkben FELADAT-ként hivatkozunk.
Ezek mindig a feladat címében szerepelnek majd zárójelben.
Mindegyik feladat a következőket tartalmazza:
- egy input_FELADAT.X nevű fájlt nagy bemenetet valamilyen fájlformátumban (X mindig változhat)
- egy kisinput_FELADAT.X nevű fájlt, ami egy kis bemenetet tartalmaz ugyanabban a formátumban
- egy kisoutput_FELADAT.Y nevű fájlt, ami egy kis kimenetet tartalmaz a kívánt formátumban (Y mindig változhat), ami a kis bemenetre adott jó megoldás. Ebből derül ki, hogy mit is kell csinálni.
A feladatod az lenne, hogy előállítsd ezek alapján a következő fájlokat:
- egy output_FELADAT.Y, ami a nagy bemenethez tartozó szintén nagy kimenetet tartalmazza.
- egy mo_FELADAT.regex mindössze kettő sort tartalmazó .regex kiterjesztésű szöveges fájlt, amelynek első sora a reguláris kifejezés, amire kerestél, a második sora pedig a paraméteres kifejezés, amire cseréltél.
Természetesen a lényeg az lenne, hogy a .regex fájl-ban leírt teljes dokumentumos cserét végrehajtva az input_FELADAT.X-en az output_FELADAT.Y-t kapjuk, és ez megfeleljen annak az átírásnak, amit a kis bemenet és kis kimenet fájlpár leír.
Konkrét feladatok
Számozott felsorolások átírása HTML-re (felsorolas2html)
Összeömlesztettem az összes 3000-es feladatot A és I között, és szeretném ezeket átírni html-re, hogy kirakhassam a honlapomon.
Nyilván nem stimmelnek így a számozások, de megoldaná a problémát, ha ol-környezetet használnék, hiszen az magától számozna mindent.
Erre problémára adj egyetlen teljes dokumentumos cserével választ úgy, hogy reguláris kifejezésekre támaszkodsz!
Vigyázat, a kisoutput most egy html-fájl, így azt a böngésző rendesen megnyitja (és ul-környezetként értelmezi). Az oldal forrását nézzétek vagy mentsétek le a mögötte lévő lapot teljes egészében!
csv fájl átírása html-táblázattá (csv2html)
Ki kell rakni a 3000J-ben lévő nevezetes tanulói adatbázist egy statikus honlapra. Egyetlen cserével írd át a mellékelt csv-fájlt, hogy egy megfelelő table-környezetbe beillesztve a fájlt a megfelelő táblázat jelenjen majd meg!
Vigyázat, a kisoutput most egy html-fájl, így azt a böngésző rendesen megnyitja (és ul-környezetként értelmezi). Az oldal forrását nézzétek vagy mentsétek le a mögötte lévő lapot teljes egészében!
Illetve vigyázzatok arra is, hogy a csv-fájlokat valószínűleg megpróbálja majd az excel automatikusan megnyitni. Rendes szövegszerkesztővel (pl. VSCode vagy Notepad++) nyissátok meg! Kódolásra is ügyeljetek, ezekben a szövegszerkesztőkben ez könnyen elintézhető (encoding!). Legyen szép UTF-8.
csv fájl feltöltése relációs adatbázisba (csv2sql)
Fel kell tölteni a 3000J-ben lévő nevezetes tanulói adatbázist egy adatbázisba (pl. azért, hogy azt egy dinamikus webes alkalmazás felhasználhassa). Egyetlen cserével írd át a mellékelt csv-fájlt úgy, hogy az adatbázisszerver értelmezve a parancsokat felöltse a csv tartalmával az (erre már előkészített) adatbázist!
Vigyázat, a csv-fájlokat valószínűleg megpróbálja majd az excel automatikusan megnyitni. Rendes szövegszerkesztővel (pl. VSCode vagy Notepad++) nyissátok meg! Kódolásra is ügyeljetek, ezekben a szövegszerkesztőkben ez könnyen elintézhető (encoding!). Legyen szép UTF-8.
Illetve vigyázzatok arra is, hogy a csv-fájlokat valószínűleg megpróbálja majd az excel automatikusan megnyitni. Rendes szövegszerkesztővel (pl. VSCode vagy Notepad++) nyissátok meg! Kódolásra is ügyeljetek, ezekben a szövegszerkesztőkben ez könnyen elintézhető (encoding!). Legyen szép UTF-8.
html fájl átírása tsv-formátumba (html2tsv)
A MESTER visszalépéses keresés témakörének Üzletek* feladatára beérkezett eredményeket szeretné egy tanár egy programban feldolgozni. A tanárnak már vannak korábban elkészített kiváló tsv fájlbeolvasó és feldolgozó függvényei, azonban az eredmények kapcsán csak a tanulók által is hozzáférhető "EredményLista" linken keresztül tud hozzáférni, és ott egy html-be ágyazott táblázat várja. Adj meg olyan reguláris kifejezéssel megadott teljes dokumentumos cserét, amely sok sorban és sok whitespace-szel szedett html-táblázatot egy egyszerű, a tanár programja számára kényelmesen beolvasható és feldolgozható tabulátorokkal tagolt tsv-fájlba alakítja át!
Vigyázat, az input-fájlok most html-fájlok, így a böngésző ezeket egyből értelmezi. Az oldal forrását nézzétek vagy mentsétek le a mögötte lévő lapot teljes egészében és kódszerkesztővel nyissátok meg!