Grupe simbola u regularnim izrazima JavaScript
Postoje posebne komande koje omogućavaju
odabir čitavih grupa simbola odjednom. Komanda
\d označava cifru od 0 do 9.
Komanda \w označava cifru, latinično
slovo ili znak donje crte. Komanda \s
označava razmak ili razmakni simbol:
prazninu, prelazak u novi red, tabulator. Možete
invertovati značenje komande, tako što ćete napisati veliko
slovo: na primer, ako je \d - cifra,
onda je \D - nije cifra.
Primer
Hajde da nađemo sve cifre:
let str = '1 12 123';
let res = str.replace(/\d/g, '!');
Kao rezultat, u promenljivu će biti upisano sledeće:
'! !! !!!'
Primer
Operatori ponavljanja tretiraju komande-grupe
kao jednu celinu, odnosno zagrade za grupisanje
nisu potrebne. U sledećem primeru šablon pretrage
izgleda ovako: cifra od 0 do 9
jednom ili više puta:
let str = '1 12 123 abc @@@';
let res = str.replace(/\d+/g, '!');
Kao rezultat, u promenljivu će biti upisano sledeće:
'! ! ! abc @@@'
Primer
U sledećem primeru šablon pretrage izgleda
ovako: bilo šta jedan ili više puta,
ali ne cifra od 0 do 9:
let str = '123abc3@@';
let res = str.replace(/\D+/g, '!');
Kao rezultat, u promenljivu će biti upisano sledeće:
'123!3!'
Primer
U ovom primeru šablon pretrage izgleda ovako: razmakni simbol jednom:
let str = '1 12 123 abc @@@';
let res = str.replace(/\s/g, '!');
Kao rezultat, u promenljivu će biti upisano sledeće:
'1!12!123!abc!@@@'
Primer
U ovom primeru šablon pretrage izgleda ovako:
NE razmakni simbol jedan ili više puta.
Svi podstringovi, razdvojeni razmacima, zameniće se
sa '!':
let str = '1 12 123 abc @@@';
let res = str.replace(/\S+/g, '!');
Kao rezultat, u promenljivu će biti upisano sledeće:
'! ! ! ! !'
Primer
U ovom primeru šablon pretrage izgleda ovako:
cifra ili slovo jedan ili više puta.
Svi podstringovi, koji se sastoje od cifara i slova,
zameniće se sa '!':
let str = '1 12 123a Abc @@@';
let res = str.replace(/\w+/g, '!');
Kao rezultat, u promenljivu će biti upisano sledeće:
'! ! ! ! @@@'
Primer
U ovom primeru šablon pretrage izgleda ovako:
NE cifra i NE slovo jedan ili više puta.
Pod ovu definiciju u našem slučaju spadaju
'@@@' i svi razmaci (oni takođe
nisu cifre i nisu slova). Obratite pažnju na
to da na kraju ima jedan '!' - u njega
se transformisao string ' @@@' - sa
razmakom ispred:
let str = '1 12 123 Abc @@@';
let res = str.replace(/\W+/g, '!');
Kao rezultat, u promenljivu će biti upisano sledeće:
'1!12!123!Abc!'
Praktični zadaci
Dat je string:
let str = 'a1a a2a a3a a4a a5a aba aca';
Napišite regularni izraz, koji će naći stringove,
u kojima sa obe strane stoje slova 'a',
a između njih jedna cifra.
Dat je string:
let str = 'a1a a22a a333a a4444a a55555a aba aca';
Napišite regularni izraz, koji će naći stringove,
u kojima sa obe strane stoje slova 'a',
a između njih bilo koji broj cifara.
Dat je string:
let str = 'aa a1a a22a a333a a4444a a55555a aba aca';
Napišite regularni izraz, koji će naći stringove,
u kojima sa obe strane stoje slova 'a',
a između njih bilo koji broj cifara (uključujući
i nula cifara, odnosno string 'aa').
Dat je string:
let str = 'avb a1b a2b a3b a4b a5b abb acb';
Napišite regularni izraz, koji će naći stringove
sledećeg oblika: sa obe strane stoje slova
'a' i 'b', a između njih - nije
cifra i nije razmak.
Dat je string:
let str = 'ave a#b a2b a$b a4b a5b a-b acb';
Napišite regularni izraz, koji će naći stringove
sledećeg oblika: sa obe strane stoje slova
'a' i 'b', a između njih - nije
slovo, nije cifra i nije razmak.
Dat je string:
let str = 'ave a#a a2a a$a a4a a5a a-a aca';
Napišite regularni izraz, koji će zameniti sve razmake
na '!'.