Daugiaeilystė JavaScript reguliariosiose išraiškose
Reguliariosios išraiškos, dirbant su daugiaeilėmis eilutėmis, turi savo ypatumus. Pažvelkime į juos šios eilutės pavyzdžiu, kuriame yra įprastų simbolių, eilutės pertraukimo simbolių ir tabuliacijų:
let str = `111
222
333
444`;
Eilutės pertrauka
Eilutės pertraukos simbolius galima
pagauti naudojant komandą '\n':
let res = str.replace(/\n/g, '!');
Rezultate į kintamąjį bus įrašyta taip (tarpai tarp eilučių - tai tabuliacijos):
`111! 222! 333! 444`;
Tabuliavimas
Tabuliacijos simbolius galima
pagauti naudojant komandą '\t':
let res = str.replace(/\t/g, '!');
Rezultate į kintamąjį bus įrašyta taip:
`
111
!222
!333
!444
`;
Taško veikimas
Komanda '.' daugiaeilei
eilutei negauna eilutės pertraukos simbolių:
let res = str.replace(/./g, '!');
Rezultate į kintamąjį bus įrašyta taip:
`
!!!
!!!!
!!!!
!!!!
`;
Bet koks simbolis
Norint pagauti visus simbolius daugiaeilėje
eilutėje, naudojama gudri metodo variacija kaip
derinys [\s\S]. Tokia konstrukcija ras
visus įprastus simbolius ir visas eilutės pertraukas:
let res = str.replace(/[\s\S]/g, '!');
Rezultate į kintamąjį bus įrašyta taip:
`!!!!!!!!!!!!!!!!!!`;
Šapelių žymė (^)
Naudojant modifikatorių 'm'
galima įjungti daugiaeilį režimą.
Šiuo atveju šapelių žymė (^) ras
kiekvienos eilutės pradžią:
let res = str.replace(/^/gm, '!');
Rezultate į kintamąjį bus įrašyta taip:
`
!111
!222
!333
!444
`;
Dolerio ženklas ($)
Komanda '$' daugiaeiliame režime
ras kiekvienos eilutės pabaigą:
let res = str.replace(/$/gm, '!');
Rezultate į kintamąjį bus įrašyta taip:
`
111!
222!
333!
444!
`;
Praktinės užduotys
Duota eilutė:
`
abc
def
ghi
jkl
`;
Parašykite reguliariąją išraišką, kuri padarys iš šios eilutės tokią:
`
abc!
def!
ghi!
jkl!
`;
Duota eilutė:
`
abc
def
ghi
jkl
`;
Parašykite reguliariąją išraišką, kuri padarys iš šios eilutės tokią:
`
! abc
! def
! ghi
! jkl
`;
Duota eilutė:
`
abc
def
ghi
jkl
`;
Parašykite reguliariąją išraišką, kuri padarys iš šios eilutės tokią:
`!
abc
def
ghi
jkl
!`;
Duota eilutė:
`
abc
def
ghi
jkl
`;
Parašykite reguliariąją išraišką, kuri padarys iš šios eilutės tokią:
`!
! abc
! def
! ghi
! jkl
!`;
Duota eilutė:
`
abc
def
ghi
jkl
`;
Parašykite reguliariąją išraišką, kuri padarys iš šios eilutės tokią:
`!
abc!
def!
ghi!
jkl!
!`;
Duota eilutė:
`
abc
def
ghi
jkl
`;
Parašykite reguliariąją išraišką, kuri padarys iš šios eilutės tokią:
`
!abc
!def
!ghi
!jkl
`;