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:

javascriptlet str = '1 12 123';
let res = str.replace(/\d/g, '!');

Kao rezultat, u promenljivu će biti upisano sledeće:

javascript'! !! !!!'

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:

javascriptlet str = '1 12 123 abc @@@';
let res = str.replace(/\d+/g, '!');

Kao rezultat, u promenljivu će biti upisano sledeće:

javascript'! ! ! abc @@@'

Primer

U sledećem primeru šablon pretrage izgleda ovako: bilo šta jedan ili više puta, ali ne cifra od 0 do 9:

javascriptlet str = '123abc3@@';
let res = str.replace(/\D+/g, '!');

Kao rezultat, u promenljivu će biti upisano sledeće:

javascript'123!3!'

Primer

U ovom primeru šablon pretrage izgleda ovako: razmakni simbol jednom:

javascriptlet str = '1 12 123 abc @@@';
let res = str.replace(/\s/g, '!');

Kao rezultat, u promenljivu će biti upisano sledeće:

javascript'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 '!':

javascriptlet str = '1 12 123 abc @@@';
let res = str.replace(/\S+/g, '!');

Kao rezultat, u promenljivu će biti upisano sledeće:

javascript'! ! ! ! !'

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 '!':

javascriptlet str = '1 12 123a Abc @@@';
let res = str.replace(/\w+/g, '!');

Kao rezultat, u promenljivu će biti upisano sledeće:

javascript'! ! ! ! @@@'

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:

javascriptlet str = '1 12 123 Abc @@@';
let res = str.replace(/\W+/g, '!');

Kao rezultat, u promenljivu će biti upisano sledeće:

javascript'1!12!123!Abc!'

Praktični zadaci

Задание 1

Dat je string:

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

Задание 2

Dat je string:

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

Задание 3

Dat je string:

javascriptlet 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').

Задание 4

Dat je string:

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

Задание 5

Dat je string:

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

Задание 6

Dat je string:

javascriptlet str = 'ave a#a a2a a$a a4a a5a a-a aca';

Napišite regularni izraz, koji će zameniti sve razmake na '!'.