http://wiki.math.bme.hu/history/Informatika1-2018/Gyakorlat3?feed=atom&
Informatika1-2018/Gyakorlat3 - Laptörténet
2024-03-28T16:21:44Z
Az oldal laptörténete a wikiben
MediaWiki 1.18.1
http://wiki.math.bme.hu/index.php?title=Informatika1-2018/Gyakorlat3&diff=13616&oldid=prev
Gaebor: /* Feladatok */
2018-09-26T14:59:10Z
<p><span class="autocomment">Feladatok</span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">←Régebbi változat</td>
<td colspan='2' style="background-color: white; color:black;">A lap 2018. szeptember 26., 14:59-kori változata</td>
</tr><tr><td colspan="2" class="diff-lineno">49. sor:</td>
<td colspan="2" class="diff-lineno">49. sor:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Néggyel osztható 2-jegyű szám</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Néggyel osztható 2-jegyű szám</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Szökőév</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Szökőév</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">* yyyy.mm.dd formátumú dátumok</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">** de az elválasztó más is lehet, nem csak pont, viszont a két elválasztónak azonosnak kell lennie.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">    </ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">    yyyy.mm.dd</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">    yyyy-mm-dd</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">    yyyy,mm,dd</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">    </ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">* replace-el:</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">** alakítsuk át a yyyy-mm-dd formátumú dátumokat ''mm-dd-yy'' alakúra!</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">** cseréljünk fel két oszlopot ebben: [http://math.bme.hu/~borbely/A1nevsor.txt]</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Nehezebb feladatok ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Nehezebb feladatok ===</div></td></tr>
</table>
Gaebor
http://wiki.math.bme.hu/index.php?title=Informatika1-2018/Gyakorlat3&diff=13597&oldid=prev
Gaebor: Új oldal, tartalma: „Előző - Fel - Következő == Reguláris kifejezések == A regulá…”
2018-09-18T08:08:21Z
<p>Új oldal, tartalma: „<a href="/view/Informatika1-2018/Gyakorlat2" title="Informatika1-2018/Gyakorlat2">Előző</a> - <a href="/view/Informatika1-2018#Gyakorlatok" title="Informatika1-2018">Fel</a> - <a href="/view/Informatika1-2018/Gyakorlat4" title="Informatika1-2018/Gyakorlat4">Következő</a> == Reguláris kifejezések == A regulá…”</p>
<p><b>Új lap</b></p><div>[[Informatika1-2018/Gyakorlat2|Előző]] - [[Informatika1-2018#Gyakorlatok|Fel]] - [[Informatika1-2018/Gyakorlat4|Következő]]<br />
<br />
== Reguláris kifejezések ==<br />
A reguláris kifejezéseket akkor használjuk, amikor összetettebb karaktersort keresünk egy szövegben, illetve ilyen karakterláncokat szeretnénk helyettesíteni. Az órán a https://regex101.com/#python oldalon fogjuk kipróbálni, hogy mi hogyan működik.<br />
* Speciális karakterek: nem ismeri fel őket, más jelentésük van, csak \ előkével tudunk rájuk keresni, pl \$, \^ stb.<br />
<pre><br />
. ^ $ * + ? { } [ ] \ | ( )<br />
</pre><br />
=== Karakterosztályok=== <br />
Egyelőre egyetlen karakterre illesztünk.<br />
* '''\d''': tetszőleges számjegy, '''\D''': tetszőleges karakter, ami nem számjegy.<br />
* '''\w''': tetszőleges alfanumerikus karakter, betű, szám vagy alulvonás (_), '''\W''': tetszőleges, nem alfanumerikus karakter.<br />
* '''\s''': whitespace, azaz tab, sor vége, szóköz, '''\S''' tetszőleges, nem whitespace karakter.<br />
* Mi is megadhatunk karakterosztályt: '''[xyz]''', vagy tilthatunk is, pl. '''[^xyz]'''. Előbbi az x,y,z karakterek bármelyikére illeszkedik, utóbbi bármilyen karakterre, ami nem x,y vagy z. Sőt, kötőjellel elválasztva intervallunként hivatkozhatunk a karakterekre, pl. '''[a-z]''' illeszkedik az összes kisbetűre, de az '''[A-Za-z0-9]''' is helyes, ez minden kis- és nagybetűre és számjegyre illeszkedik.<br />
* '''^''': sor eleje, '''$''', sor vége.<br />
* A '''.''' minden karakterre illeszkedik.<br />
<br />
=== Ismétlődések ===<br />
{| class="wikitable"<br />
|-<br />
| Jelölés || Ismétlődések száma || Példa <br />
|-<br />
| '''*''' || 0,1, vagy akármennyi || a '''\d*''' illeszkedik a '123' karakterekre, de az üres ''-re is<br />
|-<br />
| '''+''' || legalább 1 || '''\d+''' Illeszkedik tetszőleges darab számjegyre<br />
|-<br />
| '''?''' || 0 vagy 1 || '''oda\-?vissza''' illeszkedik az 'oda-vissza' és az 'odavissza' szavakra is<br />
|-<br />
| '''{m,n}''' || Legalább ''m'', legfeljebb ''n'' darab, bármelyik szám elhagyható || ''':D{4,10}''' nem illeszkedik a ':DDDDDDDDDDDDDD'-re<br />
|}<br />
=== Választás ===<br />
* Bármilyen magánhangzóra illeszkedik a '''a|e|i|o|u''' kifejezés. Próbáljuk ki a '''GetValue|Get|Set|SetValue''' kifejezést. A ''SetValue'' szövegnél mire illeszkedik?<br />
=== Csoportosítás ===<br />
Lehetőségünk van csoportokat kijelölni a kifejezésen belül. Az alábbi példa olyan szövegre illeszkedik, amelyben kétszer ismétlődik bármi.<br />
<pre><br />
(.*)\1<br />
</pre><br />
Tudunk keresni html tageket is<br />
<pre><br />
<([A-Z][A-Z0-9]*)\b[^>]*>.*?</\1><br />
</pre><br />
Több csoportot is tudunk kezelni, a nyitó zárójelek sorrendje határozza meg a csoport sorszámát. Cseréljük le az email cím országkódját .hu-ra!<br />
<pre><br />
(\w+)@((\w+)\.)+(\w+)<br />
</pre><br />
== Feladatok ==<br />
* yyyy.mm.dd formátumú dátumok<br />
* Magyar mobilszámok<br />
* Néggyel osztható 2-jegyű szám<br />
* Szökőév<br />
<br />
=== Nehezebb feladatok ===<br />
Nagy betűkkel írt római számok<br />
<br />
Évezred: <code>M{0,4}</code>, évszázad: <code>CM|CD|D?C{0,3}</code>, évtized: <code>XC|XL|L?X{0,3}</code>, év: <code>IX|IV|V?I{0,3}</code>. Akkor mégis mi a hiba az alábbi megoldással?<br />
<br />
M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})<br />
<br />
Hogy illeszkedik az üres sztringre is! Megoldás <br />
<br />
\b(?=[MDCLXVI])M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})\b<br />
<br />
Pozitív egészek, esetleg a sokjegyű számok hármasával csoportosítva vannak és a csoportok szóközzel elválasztva<br />
<br />
[1-9](\d{0,2}( \d{3})+|\d*)<br />
<br />
Ugyanez szóhatárok közt:<br />
<br />
\b[1-9](\d{0,2}( \d{3})+|\d*)\b<br />
<br />
HTML-kódban hexadecimális színkód (3 vagy 6 hexa szám)<br />
<br />
([0-9A-Fa-f]{3}){1,2}<br />
<br />
[[Informatika1-2018/Gyakorlat2|Előző]] - [[Informatika1-2018#Gyakorlatok|Fel]] - [[Informatika1-2018/Gyakorlat4|Következő]]</div>
Gaebor