„Reguláris kifejezés” változatai közötti eltérés

[ellenőrzött változat][nem ellenőrzött változat]
Tartalom törölve Tartalom hozzáadva
Vituzzu (vitalap | szerkesztései)
a Visszaállítottam a lap korábbi változatát: 2A02:908:E511:EF80:F6B7:E2FF:FEB2:B995 (vita) szerkesztéséről [[User:Atobot|Atobot…
a folyó szöveg helyett felsorolás
1. sor:
A '''reguláris kifejezés''' (rövidítve: '''regexp''' vagy '''regex''' az [[angol nyelv|angolulangol]] ''regular expression'' után) egy olyan, bizonyos [[szintaxis|szintaktikai]] szabályok szerint leírt [[string]], amivel meghatározható stringek egy [[halmaz]]a. Nevének rövidítésére gyakran a '''regexp''' vagy '''regex''' kifejezés használatos.
 
Az ilyen kifejezés valamilyen minta szerinti szöveg keresésére (esetleg cseréjére) használható.
Az ilyen kifejezés valamilyen minta szerinti szöveg keresésére (esetleg cseréjére) használható. Például egy érvényes (nem feltétlenül még élő személyt jelölő) [[személyi szám]] biztosan eleget tesz a következő formális leírásnak: egy 1 és 8 közötti számjegy, egy szóköz, utána 19 vagy 20 vagy 21 és még két számjegy (év), utána 0 és egy 1 és 9 közötti számjegy, vagy pedig 1 és egy 0 és 2 közötti számjegy (hónap), utána egy 0, amit 1-9 közötti számjegy követ, vagy 1 vagy 2, amit 0 és 9 közötti számjegy követ, vagy 3, amit 0 vagy 1 követ (nap), majd még egy szóköz és még négy számjegy; esetleg a szóközök helyén kötőjel is állhat. A programnak megmondhatjuk, hogy keresse meg az összes ilyen minta szerinti karaktersorozatot, majd pedig a kötőjeleket cserélje szóközre, hogy egységes legyen (vagy a kötőjeleket és a szóközöket is nem törhető szóközre, hogy egy weblapon egyben maradjanak). Egy másik példa: egy érvényes, dr. és más előtagok nélküli magyar személynév a magyar ábécé betűiből, szóközökből és kötőjelekből állhat a következő megszorításokkal: kötőjel és szóköz nem állhat az elején és a végén, sem másik kötőjel vagy szóköz után, csak két betű között; az első betű, valamint a szóközök és kötőjelek utáni betűk nagyok, a többi pedig kicsi; végül legalább egy szóköznek mindenképpen lennie kell. Ez a két példa nem garantálja, hogy amit találtunk, az biztosan érvényes személyi szám vagy magyar név, csak azt, hogy ily módon az összeset megtaláltuk. De ha olyan karaktersorozatot keresünk, amelyik 1 vagy 2 vagy 3 I betű után egy pontot, egy szóközt és az András vagy az Endre szavakat tartalmazza, akkor biztosak lehetünk benne, hogy egy valódi magyar király nevét találtuk meg (a római I a keresés szempontjából betűnek számít, és még arra is figyelnünk kell, hogy a sorozatot megelőző karakter bármi más lehet, csak még egy I nem, különben a reguláris kifejezésünk a „IIII. András” stringet is megtalálná, ami hiba lenne). Ha ugyanezt elfogadjuk nulla vagy egynél több szóközzel is, de ezeket egyre cseréljük, akkor hibás alakokat is találhatunk, és egy gyakori gépelési hibát javíthatunk ki. Ha ragozott alakokat is keresni akarunk, akkor figyelnünk kell rá, hogy az Endr''é''ből é betűs alak lehet, míg az András szótő változatlan marad.
 
Például egy érvényes (nem feltétlenül még élő személyt jelölő) [[személyi szám]] biztosan a következő elemekből áll:
*egy 1 és 8 közötti számjegy;
*egy szóköz;
*19 vagy 20 vagy 21 és még két számjegy (év);
*utána
**egy 0 és egy 1-9 közötti számjegy vagy
**egy 1 és egy 0-2 közötti számjegy (hónap);
*utána
**egy 0-2 közötti számjegy és egy 0-9 közötti számjegy vagy
**egy 3, amit 0 vagy 1 követ (nap)
*egy szóköz
*és még négy számjegy.
(Esetleg a szóközök helyén kötőjel is állhat.)
 
Az ilyen kifejezés valamilyen minta szerinti szöveg keresésére (esetleg cseréjére) használható. Például egy érvényes (nem feltétlenül még élő személyt jelölő) [[személyi szám]] biztosan eleget tesz a következő formális leírásnak: egy 1 és 8 közötti számjegy, egy szóköz, utána 19 vagy 20 vagy 21 és még két számjegy (év), utána 0 és egy 1 és 9 közötti számjegy, vagy pedig 1 és egy 0 és 2 közötti számjegy (hónap), utána egy 0, amit 1-9 közötti számjegy követ, vagy 1 vagy 2, amit 0 és 9 közötti számjegy követ, vagy 3, amit 0 vagy 1 követ (nap), majd még egy szóköz és még négy számjegy; esetleg a szóközök helyén kötőjel is állhat. A programnak megmondhatjuk, hogy keresse meg az összes ilyen minta szerinti karaktersorozatot, majd pedig a kötőjeleket cserélje szóközre, hogy egységes legyen (vagy a kötőjeleket és a szóközöket is nem törhető szóközre, hogy egy weblapon egyben maradjanak). Egy másik példa: egy érvényes, dr. és más előtagok nélküli magyar személynév a magyar ábécé betűiből, szóközökből és kötőjelekből állhat a következő megszorításokkal: kötőjel és szóköz nem állhat az elején és a végén, sem másik kötőjel vagy szóköz után, csak két betű között; az első betű, valamint a szóközök és kötőjelek utáni betűk nagyok, a többi pedig kicsi; végül legalább egy szóköznek mindenképpen lennie kell. Ez a két példa nem garantálja, hogy amit találtunk, az biztosan érvényes személyi szám vagy magyar név, csak azt, hogy ily módon az összeset megtaláltuk. De ha olyan karaktersorozatot keresünk, amelyik 1 vagy 2 vagy 3 I betű után egy pontot, egy szóközt és az András vagy az Endre szavakat tartalmazza, akkor biztosak lehetünk benne, hogy egy valódi magyar király nevét találtuk meg (a római I a keresés szempontjából betűnek számít, és még arra is figyelnünk kell, hogy a sorozatot megelőző karakter bármi más lehet, csak még egy I nem, különben a reguláris kifejezésünk a „IIII. András” stringet is megtalálná, ami hiba lenne). Ha ugyanezt elfogadjuk nulla vagy egynél több szóközzel is, de ezeket egyre cseréljük, akkor hibás alakokat is találhatunk, és egy gyakori gépelési hibát javíthatunk ki. Ha ragozott alakokat is keresni akarunk, akkor figyelnünk kell rá, hogy az Endr''é''ből é betűs alak lehet, míg az András szótő változatlan marad.
 
A reguláris kifejezéseket sok [[szövegszerkesztő]], illetve [[segédprogram]] használja, főleg szövegek keresésekor vagy szövegek bizonyos minták szerinti kezelésekor.