Večvrstičnost v regularnih izrazih JavaScript
Regularni izrazi imajo pri delu z večvrstičnimi nizi svoje posebnosti. Oglejmo si jih na primeru naslednjega niza, ki vsebuje običajne znake, znake za novo vrstico in tabulatorje:
javascriptlet str = `111
222
333
444`;
Nova vrstica
Znake za novo vrstico lahko
ujamemo z ukazom '\n':
javascriptlet res = str.replace(/\n/g, '!');
Kot rezultat se bo v spremenljivko zapisalo naslednje (vrzeli med vrsticami so tabulatorji):
javascript`111! 222! 333! 444`;
Tabulator
Znake tabulatorja lahko
ujamemo z ukazom '\t':
javascriptlet res = str.replace(/\t/g, '!');
Kot rezultat se bo v spremenljivko zapisalo naslednje:
javascript`
111
!222
!333
!444
`;
Delovanje pike
Ukaz '.' pri večvrstičnem
nizu ne ujame znakov za novo vrstico:
javascriptlet res = str.replace(/./g, '!');
Kot rezultat se bo v spremenljivko zapisalo naslednje:
javascript`
!!!
!!!!
!!!!
!!!!
`;
Katerikoli znak
Za ujetje vseh znakov v večvrstičnem
nizu se uporabi premetena tehnika v obliki
kombinacije [\s\S]. Ta konstrukcija bo našla
vse običajne znake in vse prelome vrstic:
javascriptlet res = str.replace(/[\s\S]/g, '!');
Kot rezultat se bo v spremenljivko zapisalo naslednje:
javascript`!!!!!!!!!!!!!!!!!!`;
Strešica (^)
Z modifikatorjem 'm'
lahko vklopimo večvrstični način.
V tem primeru bo strešica ujela
začetek vsake vrstice:
javascriptlet res = str.replace(/^/gm, '!');
Kot rezultat se bo v spremenljivko zapisalo naslednje:
javascript`
!111
!222
!333
!444
`;
Dolar ($)
Ukaz ' v večvrstičnem načinu
bo ujel konec vsake vrstice:
javascriptlet res = str.replace(/$/gm, '!');
Kot rezultat se bo v spremenljivko zapisalo naslednje:
javascript`
111!
222!
333!
444!
`;
Praktične naloge
Dan je niz:
javascript`
abc
def
ghi
jkl
`;
Napišite regularni izraz, ki bo iz tega niza naredil naslednji:
javascript`
abc!
def!
ghi!
jkl!
`;
Dan je niz:
javascript`
abc
def
ghi
jkl
`;
Napišite regularni izraz, ki bo iz tega niza naredil naslednji:
javascript`
! abc
! def
! ghi
! jkl
`;
Dan je niz:
javascript`
abc
def
ghi
jkl
`;
Napišite regularni izraz, ki bo iz tega niza naredil naslednji:
javascript`!
abc
def
ghi
jkl
!`;
Dan je niz:
javascript`
abc
def
ghi
jkl
`;
Napišite regularni izraz, ki bo iz tega niza naredil naslednji:
javascript`!
! abc
! def
! ghi
! jkl
!`;
Dan je niz:
javascript`
abc
def
ghi
jkl
`;
Napišite regularni izraz, ki bo iz tega niza naredil naslednji:
javascript`!
abc!
def!
ghi!
jkl!
!`;
Dan je niz:
javascript`
abc
def
ghi
jkl
`;
Napišite regularni izraz, ki bo iz tega niza naredil naslednji:
javascript`
!abc
!def
!ghi
!jkl
`;