Višelinijski režim u JavaScript regularnim izrazima
Regularni izrazi pri radu sa višelinijskim stringovima imaju svoje specifičnosti. Hajde da ih istražimo na primeru sledećeg stringa, koji sadrži obične karaktere, karaktere za prelazak u novi red i tabulatore:
let str = `111
222
333
444`;
Prelazak u novi red
Karaktere za prelazak u novi red možemo
uhvatiti koristeći naredbu '\n':
let res = str.replace(/\n/g, '!');
Kao rezultat, u promenljivu će biti upisano sledeće (razmaci između redova su tabulacije):
`111! 222! 333! 444`;
Tabulacija
Karaktere tabulacije možemo
uhvatiti koristeći naredbu '\t':
let res = str.replace(/\t/g, '!');
Kao rezultat, u promenljivu će biti upisano sledeće:
`
111
!222
!333
!444
`;
Ponašanje tačke
Naredba '.' za višelinijski
string ne hvata karaktere za prelazak u novi red:
let res = str.replace(/./g, '!');
Kao rezultat, u promenljivu će biti upisano sledeće:
`
!!!
!!!!
!!!!
!!!!
`;
Bilo koji karakter
Da bismo uhvatili sve karaktere u višelinijskom
stringu, koristi se vešt trik u vidu
kombinacije [\s\S]. Ova konstrukcija će pronaći
sve obične karaktere i sve prelaske u novi red:
let res = str.replace(/[\s\S]/g, '!');
Kao rezultat, u promenljivu će biti upisano sledeće:
`!!!!!!!!!!!!!!!!!!`;
Znak ^ (šeširić)
Koristeći modifikator 'm'
možemo uključiti višelinijski režim.
U ovom slučaju, znak ^ će hvataiti
početak svakog reda:
let res = str.replace(/^/gm, '!');
Kao rezultat, u promenljivu će biti upisano sledeće:
`
!111
!222
!333
!444
`;
Znak $ (dolar)
Naredba '
u višelinijskom režimu
će hvataiti kraj svakog reda:
let res = str.replace(/$/gm, '!');
Kao rezultat, u promenljivu će biti upisano sledeće:
`
111!
222!
333!
444!
`;
Praktični zadaci
Dat je string:
`
abc
def
ghi
jkl
`;
Napišite regularni izraz koji će od ovog stringa napraviti sledeći:
`
abc!
def!
ghi!
jkl!
`;
Dat je string:
`
abc
def
ghi
jkl
`;
Napišite regularni izraz koji će od ovog stringa napraviti sledeći:
`
! abc
! def
! ghi
! jkl
`;
Dat je string:
`
abc
def
ghi
jkl
`;
Napišite regularni izraz koji će od ovog stringa napraviti sledeći:
`!
abc
def
ghi
jkl
!`;
Dat je string:
`
abc
def
ghi
jkl
`;
Napišite regularni izraz koji će od ovog stringa napraviti sledeći:
`!
! abc
! def
! ghi
! jkl
!`;
Dat je string:
`
abc
def
ghi
jkl
`;
Napišite regularni izraz koji će od ovog stringa napraviti sledeći:
`!
abc!
def!
ghi!
jkl!
!`;
Dat je string:
`
abc
def
ghi
jkl
`;
Napišite regularni izraz koji će od ovog stringa napraviti sledeći:
`
!abc
!def
!ghi
!jkl
`;