A reguláris kifejezés fájdalmat okozhat. Hát, néha!
Ismerkedjünk meg a reguláris kifejezésekkel és mintáikkal. Olyan mintákat fogunk megvizsgálni, amelyek a karakterek összeszedett levesének tűnnek. Meglátjuk, mit jelent a reguláris kifejezés minden karaktere.
A cikk elolvasása után létrehozhatja reguláris kifejezéseit, és tetszés szerint használhatja őket. A végén felsorolunk néhány online RegEx-tesztelő eszközt is, így a követelmények alapján létrehozhatja a RegEx-et, és tesztelheti azt ezekkel az eszközökkel.
Tartalomjegyzék
Bevezetés
Reguláris kifejezések vagy általánosan ismert – A reguláris kifejezés bármely karaktersorozat, amely mintaként használható karakterek vagy karakterláncok kereséséhez.
Például – annak meghatározására, hogy egy karakterlánc vagy kifejezés tartalmazza-e az „alma” szót, használhatjuk a „/apple” regex-et a karakterláncon belüli kereséshez. Egy másik példaként használhatjuk a „/[0-9]” segítségével ellenőrizheti, hogy egy adott karakterlánc tartalmaz-e 0 és 9 közötti számot.
Reguláris kifejezések és használatuk
A reguláris kifejezéseket széles körben használják különféle célokra a modern webhez kapcsolódó műveletekben. A webes űrlapok, a webes keresőmotorok, az IDE-k lexikális elemzői, a szövegszerkesztők és a dokumentumszerkesztők ellenőrzése néhány példa közé tartozik, ahol gyakran használnak reguláris kifejezéseket.
Mindannyian sokszor használtuk a „CTRL + F” billentyűket, hogy egy dokumentumon vagy egy kódrészleten belül keressünk egy adott szót, kifejezést vagy kifejezést. Ez a művelet a reguláris kifejezések használatának igen gyakori példája.
Mielőtt továbbmennénk, vessünk egy pillantást egy nagyon gyakran használt reguláris kifejezésre.
Kitaláljátok 🤔 az alábbi RegEX-et mire használják?
^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{2,5})$
Ne aggódj, ha nem tudod kitalálni. Biztos vagyok benne, hogy a cikk végére kitalálnád.
Először kezdjük a RegEx A, B és C elemeivel.
Tokenek
Kezdésként nézzük meg a fent látható Regex különböző szimbólumait.
^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{2,5})$
Ha megnézzük a fent megadott reguláris kifejezést, láthatjuk, hogy sok szimbólumból vagy karakterből vagy tokenből áll. Nézzük meg, mit jelentenek:
Jelképes
Jelentése
^
Ez a token egy karakterlánc kezdetét jelöli.
(…)
Ez egy olyan csoportot jelöl, ahol minden, ami a (…)-n belül adott, megragadva.
[…]
Az [] olyan karaktereket tartalmaz, amelyek bármelyike illeszkedik. Például – [abc] megfelelni fog a-nak vagy b-nek vagy c-nek.
az
A kisbetűk halmaza a-tól z-ig. Szem előtt kell tartanunk, hogy a Regex megkülönbözteti a kis- és nagybetűket.
AZ
A nagybetűk halmaza A-tól Z-ig.
0-9
A számjegyek 0-tól 9-ig.
_
Ez megegyezik a _ karakterrel.
Ez a menekülő karakter.
.
Ez megfelel a „.” karakternek. szó szerint. Ezt azért használjuk, mert a „.” a regexben önmagában egy token, amely bármely karakterhez illeszkedik
+
Ez egy kvantor. Ez megfelel egy vagy több karakternek, amellyel együtt használják. Például az a+ az a karakter egy vagy több előfordulását jelenti.
–
Ez megegyezik a „-” karakterrel.
@
Ez egyezni fog a „@” karakterrel.
{}
Ez egy másik kvantor. Egy karakter előfordulásának számának jelölésére szolgál. Például az a{3} pontosan 3 a-t jelent.
$
Ez egy karakterlánc végét jelöli.
Az adott Regex minta bontása
Most a tokenek ezen előzetes tudásával felvértezve próbáljuk meg dekódolni a fenti reguláris kifejezést:
- ^([a-zA-Z0-9_-.]+) azt jelenti, hogy olyan karakterláncot keresünk, amely legalább egy vagy több nagy- vagy kisbetűs alfanumerikus karakterrel, aláhúzásjellel, kötőjellel vagy ponttal kezdődik. Például bármi, ami hasonlít a user_name.01-hez, megfelel a mintának. Emlékeznünk kell arra, hogy itt nem kell minden szimbólumot tartalmaznia, csak egy karaktert [a-zA-Z0-9_-.] megteszi.
- A @ karakter a @ egyetlen előfordulására egyezik. Az előző példát kiegészítve valami ilyesmi [email protected] illeszkedni fog.
- ([a-zA-Z0-9_-.]+) hasonló az első ponthoz. Ez azt is jelenti, hogy olyan karakterláncot keresünk, amely legalább egy alfanumerikus karaktert, aláhúzást, kötőjelet vagy pontot tartalmaz. A példát kiegészítve, [email protected] ide fog férni.
- Amint azt már sejtette, egy e-mail-mintára utalunk. Továbblépni, . megfelel a „.” karakter. Ha a folyamatban lévő példával folytatjuk, valami ilyesmi [email protected]
- ([a-zA-Z]{2,5})$ ez azt jelenti, hogy a karakterláncnak 2–5 ábécé karakterrel kell végződnie, akár nagybetűvel, akár kisbetűvel. Ha hozzáadjuk a .com-ot az előző példához, akkor megkaphatjuk [email protected]amely egy e-mail karakterlánc általános mintája.
A fentieket kombinálva láthatjuk, hogy egy e-mail azonosító karakterláncot keresünk. Most már használhatjuk ezt a kifejezést bármely e-mail azonosító érvényesítésére. Ha teszt e-mail azonosítónk megegyezik ezzel a mintával, akkor azt mondhatjuk, hogy érvényes e-mail azonosító.
PS – Ez a minta a leggyakrabban használt e-mail azonosítókhoz az interneten.
A tokenek típusai
Számos token használható különféle kombinációkban a Regexen belül a kifejezések széles skálájának leírására. Az alábbiakban áttekintjük a reguláris kifejezésekben használt különböző típusú tokeneket. Továbbá megvizsgáljuk az egyes kategóriákban leggyakrabban használt tokeneket.
Alap tokenek
Kezdjük az alapvető tokenekkel. Ezeket a tokeneket szinte minden reguláris kifejezéssel használják. Ezért először meg kell tanulnunk őket.
Jelképes
Jelentése
r
Ez megegyezik a kocsivissza karakterrel.