Informatika1-2015/Gyakorlat3

A MathWikiből
(Változatok közti eltérés)
(Feladatok =)
(Feladatok)
43. sor: 43. sor:
 
</pre>
 
</pre>
 
== Feladatok ==
 
== Feladatok ==
# Milyen regex illeszkedik a yyyy.mm.dd formátumú dátumokra?
+
# yyyy.mm.dd formátumú dátumok
# Illesszünk reguláris kifejezést magyar telefonszámokra 06-xx-xxxxxxx alakban!
+
<pre>
# Másoljuk be a bmeme.hu forrását a célszöveg helyére!
+
\d{4}\.\d{2}\.\d{2}
## Keressünk rá az összes webcímre!
+
</pre>
## Keressünk rá az összes webcímre, amire mutat link!
+
# Magyar mobilszámok
## Keressük ki a hét képét!
+
<pre>
 +
\06\-\0(3|2|7)\-\d{7}
 +
</pre>
 +
# Link keresése html oldalon
 +
<pre>
 +
<a.*\shref=\"([^\">]+\").*>.*</a>
 +
</pre>
 +
# Webcímek
 +
<pre>
 +
http://(www.)?([a-z0-9_]+\.)+(\w{2,3})</pre>
 +
# Keressük ki a hét képét a bmeme.hu oldalon!

A lap 2015. szeptember 21., 19:28-kori változata

Tartalomjegyzék

Reguláris kifejezések

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.

  • Speciális karakterek: nem ismeri fel őket, más jelentésük van, csak \ előkével tudunk rájuk keresni, pl \$, \^ stb.
. ^ $ * + ? { } [ ] \ | ( )

Karakterosztályok

Egyelőre egyetlen karakterre illesztünk.

  • \d: tetszőleges számjegy, \D: tetszőleges karakter, ami nem számjegy.
  • \w: tetszőleges alfanumerikus karakter, betű, szám vagy alulvonás (_), \W: tetszőleges, nem alfanumerikus karakter.
  • \s: whitespace, azaz tab, sor vége, szóköz, \S tetszőleges, nem whitespace karakter.
  • 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.
  • ^: sor eleje, $, sor vége.
  • A . minden karakterre illeszkedik.

Ismétlődések

Jelölés Ismétlődések száma Példa
* 0,1, vagy akármennyi a \d* illeszkedik a '123' karakterekre, de az üres -re is
+ legalább 1 \d+ Illeszkedik tetszőleges darab számjegyre
? 0 vagy 1 oda\-?vissza illeszkedik az 'oda-vissza' és az 'odavissza' szavakra is
{m,n} Legalább m, legfeljebb n darab, bármelyik szám elhagyható :D{4,10} nem illeszkedik a ':DDDDDDDDDDDDDD'-re

Választás

  • 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?

Csoportosítás

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.

(.*)\1

Tudunk keresni html tageket is

<([A-Z][A-Z0-9]*)\b[^>]*>.*?</\1>

Több csoportot is tudunk kezelni, a nyitó zárójelek sorrendja határozza meg a csoport sorszámát. Cseréljük le az email cím országkódját .hu-ra!

(\w+)@((\w+)\.)+(\w+)

Feladatok

  1. yyyy.mm.dd formátumú dátumok
\d{4}\.\d{2}\.\d{2}
  1. Magyar mobilszámok
\06\-\0(3|2|7)\-\d{7}
  1. Link keresése html oldalon
<a.*\shref=\"([^\">]+\").*>.*</a>
  1. Webcímek
http://(www.)?([a-z0-9_]+\.)+(\w{2,3})
  1. Keressük ki a hét képét a bmeme.hu oldalon!
Személyes eszközök