Seturi de caractere în expresiile regulate JavaScript
Grupurile de caractere \d și \w nu
sunt foarte flexibile. Chiar și o sarcină simplă,
ca găsirea tuturor literelor, dar nu a cifrelor -
nu poate fi rezolvată cu ele. Pentru astfel de sarcini
ar trebui să folosiți paranteze pătrate, care reprezintă
operația 'sau'.
Parantezele pătrate înlocuiesc un singur caracter,
oricare dintre cele enumerate în interior. De exemplu,
așa: /x[abc]x/ - spunem că
marginile trebuie să conțină literele x, iar în interior
- un caracter: fie 'a', fie 'b',
fie 'c'.
După parantezele pătrate puteți scrie operatori
de repetare. De exemplu, așa: /x[abc]+x/
- spunem că între x poate fi
orice număr de caractere 'a', 'b'
și 'c' - în orice combinații.
Puteți nu doar să enumerați caracterele, ci și să creați
grupuri de caractere, scriând între două caractere
un liniuță. De exemplu, așa: [a-d] -
obținem toate caracterele de la 'a' până la
'd'.
Să ne uităm la exemple.
Exemplul
În acest exemplu, modelul de căutare arată astfel:
între x orice literă de la 'a'
până la 'z':
let str = 'xax xbx xcx x@x';
let res = str.replace(/x[a-z]x/g, '!');
Ca rezultat, în variabilă se va scrie următoarele:
'! ! ! x@x'
Exemplul
În acest exemplu, modelul de căutare arată astfel:
între x orice literă de la 'a'
până la 'k':
let str = 'xax xbx xmx x@x';
let res = str.replace(/x[a-k]x/g, '!');
Ca rezultat, în variabilă se va scrie următoarele:
'! ! xmx x@x'
Exemplul
În acest exemplu, modelul de căutare arată astfel:
între x orice literă de la 'A'
până la 'Z':
let str = 'xax xBx xcx x@x';
let res = str.replace(/x[A-Z]x/g, '!');
Ca rezultat, în variabilă se va scrie următoarele:
'xax ! xcx x@x'
Exemplul
În acest exemplu, modelul de căutare arată astfel:
între x orice cifră de la 0 la 9:
let str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[0-9]x/g, '!');
Ca rezultat, în variabilă se va scrie următoarele:
'xax ! ! ! x@x'
Exemplul
În acest exemplu, modelul de căutare arată astfel:
între x orice cifră de la 3 la 7:
let str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[3-7]x/g, '!');
Ca rezultat, în variabilă se va scrie următoarele:
'xax x1x ! ! x@x'
Exemplul
În acest exemplu, modelul de căutare arată astfel:
între x orice literă de la 'a'
până la 'z' sau cifră de la 1 la 9:
let str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[a-z1-9]x/g, '!');
Ca rezultat, în variabilă se va scrie următoarele:
'! ! ! ! x@x'
Exemplul
În acest exemplu, modelul de căutare arată astfel:
între x orice literă de la 'a'
până la 'z' sau literă de la 'A' până la
'Z':
let str = 'xax xBx xcx x5x x@x';
let res = str.replace(/x[a-zA-Z]x/g, '!');
Ca rezultat, în variabilă se va scrie următoarele:
'! ! ! x5x x@x'
Exemplul
În acest exemplu, modelul de căutare arată astfel:
între x orice literă de la 'a'
până la 'z' sau cifrele 1, 2:
let str = 'xax xbx x1x x2x x3x';
let res = str.replace(/x[a-z12]x/g, '!');
Ca rezultat, în variabilă se va scrie următoarele:
'! ! ! ! x3x'
Exemplul
În acest exemplu, modelul de căutare arată astfel:
între x litere de la 'a' până la 'z'
în cantitate de la 1 și mai mult:
let str = 'xx xabesx xaadx x123x xa3x';
let res = str.replace(/x[a-z]+x/g, '!');
Ca rezultat, în variabilă se va scrie următoarele:
'xx ! ! ! x123x xa3x'
Exemplul
Să facem astfel încât numărul de litere să poată fi și zero:
let str = 'xx xabesx xaadx x123x xa3x';
let res = str.replace(/x[a-z]*x/g, '!');
Ca rezultat, în variabilă se va scrie următoarele:
'! ! ! ! x123x xa3x'
Probleme practice
Este dată șirul:
let str = 'aba aea aca aza axa';
Scrieți o expresie regulată care va găsi după următorul
model: la margini stau literele 'a',
iar între ele - litera 'b', 'e'
sau 'x'.
Este dată șirul:
let str = 'a1a a3a a7a a9a aba';
Scrieți o expresie regulată care va găsi după următorul
model: la margini stau literele 'a',
iar între ele - cifră de la 3-lea până la 6.
Este dată șirul:
let str = 'aba aea afa aha aga';
Scrieți o expresie regulată care va găsi după următorul
model: la margini stau literele 'a',
iar între ele - literă de la a la g.
Este dată șirul:
let str = 'aba aea afa aha aga';
Scrieți o expresie regulată care va găsi după următorul
model: la margini stau literele 'a',
iar între ele - literă de la a la f și de la j la z.
Este dată șirul:
let str = 'aAa aea aEa aJa a3a';
Scrieți o expresie regulată care va găsi după următorul
model: la margini stau literele 'a',
iar între ele - literă de la a la f și de la A la D.
Este dată șirul:
let str = 'aAXa aeffa aGha aza ax23a a3sSa';
Scrieți o expresie regulată care va găsi după următorul
model: la margini stau literele 'a',
iar între ele - litere mici latine,
fără a afecta pe celelalte.
Este dată șirul:
let str = 'aAXa aeffa aGha aza ax23a a3sSa';
Scrieți o expresie regulată care va găsi după următorul
model: la margini stau literele 'a',
iar între ele - litere mici și mari latine
, fără a afecta pe celelalte.
Este dată șirul:
let str = 'aAXa aeffa aGha aza ax23a a3sSa';
Scrieți o expresie regulată care va găsi după următorul
model: la margini stau literele 'a',
iar între ele - litere mici latine
și cifre, fără a afecta pe celelalte.