JS Reguláris kifejezések (RegExp)

JavaScript Web

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.

/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.

RegexAngol megnevezésMagyar megnevezésRövid magyarázat
^String boundarySztring eleje horgonyA karakterlánc elejét jelöli
$String boundarySztring vége horgonyA karakterlánc végét jelöli
\bWord boundarySzóhatárSzó eleje vagy vége
\BWord boundaryNem szóhatárNem szó eleje vagy vége
(?=...)LookaheadPozitív előretekintő feltételA következő minta teljesül
(?!...)LookaheadNegatív előretekintő feltételA következő minta NEM teljesül
(?<=...)LookbehindPozitív visszatekintő feltételAz előző minta teljesül
(?<!...)LookbehindNegatív visszatekintő feltételAz 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