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:
let str = `111
222
333
444`;
Nova vrstica
Znake za novo vrstico lahko
ujamemo z ukazom '\n':
let res = str.replace(/\n/g, '!');
Kot rezultat se bo v spremenljivko zapisalo naslednje (vrzeli med vrsticami so tabulatorji):
`111! 222! 333! 444`;
Tabulator
Znake tabulatorja lahko
ujamemo z ukazom '\t':
let res = str.replace(/\t/g, '!');
Kot rezultat se bo v spremenljivko zapisalo naslednje:
`
111
!222
!333
!444
`;
Delovanje pike
Ukaz '.' pri večvrstičnem
nizu ne ujame znakov za novo vrstico:
let res = str.replace(/./g, '!');
Kot rezultat se bo v spremenljivko zapisalo naslednje:
`
!!!
!!!!
!!!!
!!!!
`;
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:
let res = str.replace(/[\s\S]/g, '!');
Kot rezultat se bo v spremenljivko zapisalo naslednje:
`!!!!!!!!!!!!!!!!!!`;
Strešica (^)
Z modifikatorjem 'm'
lahko vklopimo večvrstični način.
V tem primeru bo strešica ujela
začetek vsake vrstice:
let res = str.replace(/^/gm, '!');
Kot rezultat se bo v spremenljivko zapisalo naslednje:
`
!111
!222
!333
!444
`;
Dolar ($)
Ukaz '
v večvrstičnem načinu
bo ujel konec vsake vrstice:
let res = str.replace(/$/gm, '!');
Kot rezultat se bo v spremenljivko zapisalo naslednje:
`
111!
222!
333!
444!
`;
Praktične naloge
Dan je niz:
`
abc
def
ghi
jkl
`;
Napišite regularni izraz, ki bo iz tega niza naredil naslednji:
`
abc!
def!
ghi!
jkl!
`;
Dan je niz:
`
abc
def
ghi
jkl
`;
Napišite regularni izraz, ki bo iz tega niza naredil naslednji:
`
! abc
! def
! ghi
! jkl
`;
Dan je niz:
`
abc
def
ghi
jkl
`;
Napišite regularni izraz, ki bo iz tega niza naredil naslednji:
`!
abc
def
ghi
jkl
!`;
Dan je niz:
`
abc
def
ghi
jkl
`;
Napišite regularni izraz, ki bo iz tega niza naredil naslednji:
`!
! abc
! def
! ghi
! jkl
!`;
Dan je niz:
`
abc
def
ghi
jkl
`;
Napišite regularni izraz, ki bo iz tega niza naredil naslednji:
`!
abc!
def!
ghi!
jkl!
!`;
Dan je niz:
`
abc
def
ghi
jkl
`;
Napišite regularni izraz, ki bo iz tega niza naredil naslednji:
`
!abc
!def
!ghi
!jkl
`;