Informatika2-2014/teszt

A MathWikiből
A lap korábbi változatát látod, amilyen Wettl (vitalap | szerkesztései) 2014. március 4., 18:12-kor történt szerkesztése után volt.

Példák reguláris kifejezésekre

Írjunk olyan reguláris kifejezéset, mely illeszkedik az alábbiakban megadott mintára!

Feladat: néggyel osztható 2-jegyű szám

[02468][048]|[13579][26]

Feladat: szökőév

([1-9][0-9])(0[48]|[2468][048]|[13579][26])|(([2468][048]|[13579][26])00)


Feladat: nagy betűkkel írt római számok

Évezred: M{0,4}, évszázad: CM|CD|D?C{0,3}, évtized: XC|XL|L?X{0,3}, év: IX|IV|V?I{0,3}. Akkor mégis mi a hiba az alábbi megoldással?

M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})

Hogy illeszkedik az üres sztringre is! Megoldás

\b(?=[MDCLXVI])M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})\b

Feladat: pozitív egészek, esetleg a sokjegyű számok hármasával csoportosítva vannak és a csoportok szóközzel elválasztva

[1-9](\d{0,2}( \d{3})+|\d*)

Ugyanez szóhatárok közt:

\b[1-9](\d{0,2}( \d{3})+|\d*)\b

Feladat: HTML-kódban hexadecimális színkód (3 vagy 6 hexa szám)

([0-9A-Fa-f]{3}){1,2}


Feladat: a yyyy-mm-dd formátum szerinti érvényes dátum az 1600-as évektől

"""
(
 (1[6-9]\d\d|[2-9]\d{3})          # tetszőleges év
 -(0[13456789]|1[0-2])            # nem február
 -(0[1-9]|[12]\d|30)              # 1-30
|
 (1[6-9]\d\d|[2-9]\d{3})          # tetszőleges év
 -02-(0[1-9]|1\d|2[0-8])          # február
|
 (1[6-9]\d\d|[2-9]\d{3})          # tetszőleges év
 -(0[13578]|1[02])                # 31-napos hónap
 -31                              # 31
|
 (                                ###### szökőév
  (1[6-9]|[2-9]\d)                # első két jegy
  (0[48]|[2468][048]|[13579][26]) # 4-gyel osztható nem évszázad
 |                                # vagy
  (([2468][048]|[13579][26])00)   # 400-zal osztható
 )                                ###### szökőév eddig
 -02-29                           # február 29
)
"""

Feladat: '-jelek vagy "-jelek közé zárt szöveg

(['"])[^\1]*\1


Karakter Használat ("minta" ~ pl. "erre illeszkedik", ¬ "erre nem illeszkedik")
Bármely karakter Az adott karaktert jelöli, ha más jelentése nincs. "ba" >> "ba"
. Bármely karaktert jelöli a sortörésjel kivételével. „.l.m” ~ „elem” „alom” ¬ „idom”
^ Sor (vagy a sztring) elejére illeszkedik. "^Azt"
$ Sor vagy a sztring végére illeszkedik. "azt.$".

A $ önmagában a bekezdés végére illeszkedik. Így a bekezdéstörések megkereshetők és kicserélhetők.

* A "*" jel előtti atom 0 vagy több előfordulását keresi. "pil*a" ~ "pia", "pila", "pilla",...
+ A „+” jel előtti atom 1 vagy több előfordulását keresi. "na+" ~ "na", "naa", naaa",...
 ? A „?” jel előtti atom 0 vagy 1 előfordulását keresi. "ezt?" ~ "ez, "ezt"
\ (eszkép) a "\" jel után írt speciális karakterek normál karakterként és nem reguláris kifejezésként lesznek felismerve. "fa\." ~ "fa." ¬ "fal"
\n A Shift+Enter használatával beszúrt sortörést jelöli. Egy sortörés „bekezdés vége” jelre való lecseréléséhez a Keresett szöveg és a Csere erre mezőkbe írja be a \n értéket, majd hajtson végre egy „Keresés és csere” funkciót.

A \n a Keresés mezőben a sortörést jelenti, amelyet a Shift+Enter billentyűkombinációval vittek be.

A \n a Csere erre mezőben a bekezdésjelet jelenti, amelyet az Enter vagy a Return billentyűvel vihet be.

\t Egy tabulátort jelöl. Ez a kifejezés a Csere erre mezőben is használható.
\b Illeszkedés szóhatárra. Például a „\bkönyv” megtalálja a „könyvjelző” szót, de a „tankönyv” szót nem, míg a „könyv\b” megtalálja a „tankönyv” szót de a „könyvjelző” szót nem. A „könyv” szót önmagában mindkét keresőkifejezés megtalálja.
^$ Egy üres bekezdést keres meg.
^. Egy bekezdés első karakterét keresi meg.
& vagy $0 Cserekor a Keresett szöveg mezőben megadott keresési feltétel által talált karakterláncot hozzáadja a Csere erre mezőhöz.

Ha például az "ablak" szót írja a Keresett szöveg mezőbe és a "&kerete" szót pedig a Csere erre mezőbe, akkor az ablak szó az "ablak kerete" kifejezésre cserélődik.

Egy "&" karakter Csere erre mezőbe való beírásával módosíthatók a keresési feltétel által talált karakterlánc Attribútum vagy Formátum értékei.

[abc123] A zárójelek között lévő karakterek egyikét jelöli.
[a-e] Az a és e között elhelyezkedő betűk bármelyikét jelöli a kezdő és a záró karaktert is beleértve.

A karakterek a kódszámuk szerint vannak rendezve.

[a-eh-x] Az a és e, valamint a h és x között elhelyezkedő betűk bármelyikét jelöli.
[^a-s] Az a és s között nem elhelyezkedő betűk bármelyikét jelöli.
\uXXXX

\UXXXXXXXX

A négyjegyű hexadecimális Unicode kódjának (XXXX) megfelelő karaktert jelöli.

Ritka karakterekhez létezik egy külön változó nagy U-val és nyolc hexadecimális számjeggyel (XXXXXXXX).

Bizonyos szimbólum-betűkészletek esetén a speciális karakterek kódja a használt betűkészlettől függ A kódok megtekintéséhez válassza a Beszúrás - Különleges karakter lehetőséget.

| Megkeresi a „|” jel előtti és utáni kifejezést. Például az „ez|az” megtalálja az „ez” és az ”az” szót egyaránt.
{2} Megadja, hogy a nyitó zárójel előtti karakter hányszor szerepel. Például a „hal{2}” megtalálja és kijelöli a „hall” szót.
{1,2} Megadja, hogy a nyitó zárójel előtti karakter minimum és maximum hányszor szerepelhet. Például a „hal{1,2}” megtalálja és kijelöli a „hal” és a „hall” szót is.
{1,} Megadja, hogy a nyitó zárójel előtti karakter legalább hányszor szerepelhet. Például a "hal{2,}" megtalálja a "hall", a "halll" és a "hallllllllllll" szót is.
( ) A Keresett szöveg mezőbe írja be a következőt:

A zárójelben lévő karaktereket hivatkozásként adja meg. Ezután az aktuális kifejezésben az első hivatkozásra a "\1", a másodikra a "\2" karakterlánc megadásával hivatkozhat.

Ha például a szöveg tartalmazza a 13487889-es számot, és a (8)7\1\1 reguláris kifejezés használatával keres, a program a „8788”-at találja meg.

A kifejezések csoportosításához használhat zárójeleket is, például az "a(bc)?d" megtalálja az "ad" és az "abcd".

A Csere erre mezőben:

Használja a $ (dollár) jelet a \ (fordított perjel) helyett a hivatkozások lecserélésére. Használja a $0 karakterláncot a teljes megtalált karakterlánc lecserélésére.

[:alpha:] Egy betű karaktert jelöl. Használja az [:alpha:]+ kifejezést egy darab megtalálásához.
[:digit:] Egy szám karaktert jelöl. Használja a [:digit:]+ kifejezést egy darab megtalálásához.
[:alnum:] Egy alfanumerikus karaktert jelöl ([:alpha:] és [:digit:]).
[:space:] Szóköz karaktert jelöl (de nem a többi üres karaktert).
[:print:] Egy nyomtatható karaktert jelöl.
[:cntrl:] Nem nyomtatható karaktert jelöl.
[:lower:] Kisbetűs karaktereket jelöl, ha a Beállítások részben ki van választva a Kis- és nagybetűk megkülönböztetése lehetőség.
[:upper:] Nagybetűs karaktereket jelöl, ha a Beállítások részben ki van választva a Kis- és nagybetűk megkülönböztetése lehetőség.

Példák

e([:digit:])? – megtalálja az „e”-t és az azt követő nulla vagy egy számjegyet. Jelenleg az összes névvel rendelkező karakterosztályt (például a [:digit:]-et) zárójelbe kell tenni.

^([:digit:])$ – megtalálja azokat a sorokat vagy cellákat, amelyekben pontosan egy számjegy van.

A keresési kifejezések kombinálásával összetett keresések alakíthatók ki.

Olyan bekezdés megtalálása, amelyben egyedül csak három számjegy van.

^[:digit:]{3}$

• a ^ azt jelenti, hogy a találatnak a bekezdés elején kell lennie,

• a [:digit:] bármilyen számjegyre illeszkedik,

• a {3} azt jelenti, hogy a „[:digit:]” pontosan háromszor fordulhat elő,

• a $ azt jelenti, hogy a találatnak a bekezdés végén kell lennie.

Személyes eszközök