A RegExp (Regular Expression – reguláris kifejezés) egy mintaleíró nyelv, amellyel szövegekben kereshetünk, ellenőrizhetünk, cserélhetünk és feldarabolhatunk részleteket.
|
1 2 3 |
let text = "informatikaora.hu!"; let n = text.search(/hu/i); console.log(n); //15 |
/hu/i lesz a reguláris kifejezés, amit keresünk. Az informatikaora.hu a minta amiben keresünk. Az „i” jelzi, hogy nem különbözeti meg a kis és nagybetűket.
Általános szintaxis: /pattern/modifier flags;
A reguláris kifejezéseket gyakran a string metódusokkal együtt használjuk.
Flags (módosítók, jelzők)
A reguláris kifejezés jelzői olyan paraméterek, amelyek módosíthatják a minta használatát
g – global: összes találat (nem csak az első)
i – ignoreCase: kis-/nagybetű érzéketlen
m – multiline: ^ és $ soronként működik (nem csak a teljes sztring eleje/vége)
s – dotAll: . egyezik az új sorral is (\n)
u illetve v – unicode: Unicode-tudatos illesztés (pl. \u{1F600}), teljes kódpont támogatás
y – sticky: a keresés pontosan az aktuális lastIndex-től indul, és ott kell illeszkednie
d – indices: találati indexek elérése
Classes
A karakterosztályok négyzetes zárójelek [ ] között szereplő karakterek.
A karakterosztály a zárójelek között szereplő karakterkészlet bármely karakterével egyezik meg.
[a] A zárójelek közötti karakterrel egyezik meg.
[^a] Az összes, a zárójelek között NEM szereplő karakterrel egyezik meg.
[abc] Az összes, a zárójelek közötti karakterrel egyezik meg.
[^abc] Az összes, a zárójelek között NEM szereplő karakterrel egyezik meg.
[a-z] Az a és z közötti tartományban található összes karakterrel egyezik meg.
[^a-z] Az a és z közötti tartományban NEM szereplő összes karakterrel egyezik meg.
[0-9] A 0 és 9 közötti tartományban szereplő összes karakterrel egyezik meg.
[^0-9] A 0 és 9 közötti tartományban NEM szereplő összes karakterrel egyezik meg.
RegExp Meta Characters
A meta karakterek különleges jelzéssel bíró karakterek. pl. egyszerre tudunk számjegyeket keresni, vagy szóközöket stb.
\d Számjegyeket keres
\D Nem számjegyeket keres
\w Alfanumerikus szójeleket keres
\W Nem alfanumerikus szójeleket keres
\s Szóközöket keres
\S Nem szóközt keres
\ddd A ddd oktális számrendszerbeli számmal megegyező karaktereket találja meg.
\xhh A hh hexadecimális számmal megegyező karaktereket találja meg.
\uhhhh A hhhh hexadecimális számmal megegyező Unicode karaktereket találja meg.
RegExp Assertions – állítások, feltételes minták
Az állítások a string határokra és a körültekintésekre vonatkoznak:
Karakterlánc-határok és szóhatárok.
Környezetvizsgáló kifejezések: előre és visszatekintő feltételek.
A ^ és $ a sztringhatároló horgonyok, a \b és \B szóhatárolók, míg a (?=…), (?!…), (?<=…), (?<!…) környezetvizsgáló, úgynevezett lookaround típusú pozícióellenőrző állítások.
| Regex | Angol megnevezés | Magyar megnevezés | Rövid magyarázat |
|---|---|---|---|
^ | String boundary | Sztring eleje horgony | A karakterlánc elejét jelöli |
$ | String boundary | Sztring vége horgony | A karakterlánc végét jelöli |
\b | Word boundary | Szóhatár | Szó eleje vagy vége |
\B | Word boundary | Nem szóhatár | Nem szó eleje vagy vége |
(?=...) | Lookahead | Pozitív előretekintő feltétel | A következő minta teljesül |
(?!...) | Lookahead | Negatív előretekintő feltétel | A következő minta NEM teljesül |
(?<=...) | Lookbehind | Pozitív visszatekintő feltétel | Az előző minta teljesül |
(?<!...) | Lookbehind | Negatív visszatekintő feltétel | Az előző minta NEM teljesül |
Quantifiers (ismétlő operátorok)
x+ Legalább egy x-et talál
x* Nulla vagy több x-et talál
x? Nulla vagy egy x-et talál
x{n} n x-et talál
x{n,m} n-től m-ig x-et talál
x{n,} n vagy több x-et talál
