Informatika2-2014/teszt
2. sor: | 2. sor: | ||
Írjunk olyan reguláris kifejezéset, mely illeszkedik az alábbiakban megadott mintára! | Í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 | '''Feladat:''' nagy betűkkel írt római számok | ||
9. sor: | 18. sor: | ||
M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3}) | 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! | + | 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 | \b(?=[MDCLXVI])M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})\b | ||
25. sor: | 34. sor: | ||
([0-9A-Fa-f]{3}){1,2} | ([0-9A-Fa-f]{3}){1,2} | ||
− | |||
− | |||
− | |||
− | |||
'''Feladat:''' a yyyy-mm-dd formátum szerinti érvényes dátum az 1600-as évektől | '''Feladat:''' a yyyy-mm-dd formátum szerinti érvényes dátum az 1600-as évektől | ||
56. sor: | 61. sor: | ||
""" | """ | ||
</python> | </python> | ||
− | |||
62. sor: | 66. sor: | ||
|- | |- | ||
! scope="col" | Karakter | ! scope="col" | Karakter | ||
− | ! scope="col" | Használat ("minta" | + | ! scope="col" | Használat ("minta" ~ pl. "erre illeszkedik", ¬ "erre nem illeszkedik") |
|- | |- | ||
| | Bármely karakter | | | Bármely karakter | ||
68. sor: | 72. sor: | ||
|- | |- | ||
| | . | | | . | ||
− | | | Bármely karaktert jelöli a sortörésjel kivételével. „.l.m” | + | | | Bármely karaktert jelöli a sortörésjel kivételével. „.l.m” ~ „elem” „alom” ¬ „idom” |
|- | |- | ||
| | ^ | | | ^ | ||
79. sor: | 83. sor: | ||
|- | |- | ||
| | * | | | * | ||
− | | | A "*" jel előtti atom 0 vagy több előfordulását keresi. "pil*a" | + | | | 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+" | + | | | 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?" | + | | | 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\." | + | | | (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 | | | \n |
A lap 2014. március 4., 14:19-kori változata
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
)
"""
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.