Informatika1-2016/Gyakorlat3

A MathWikiből
A lap korábbi változatát látod, amilyen Nyida (vitalap | szerkesztései) 2016. szeptember 20., 09:10-kor történt szerkesztése után volt.
(eltér) ←Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)

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 sorrendje 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+)
Személyes eszközök