Мулти-линија во регуларните изрази на JavaScript
Регуларните изрази при работа со мулти-линиски стрингови имаат свои карактеристики. Ајде да ги разгледаме на примерот на следниот стринг, кој содржи обични карактери, карактери за нова линија и табулации:
let str = `111
222
333
444`;
Нова линија
Карактерите за нова линија може да
се фатат со командата '\n':
let res = str.replace(/\n/g, '!');
Како резултат во променливата ќе се запише следново (празните места помеѓу линиите се табулации):
`111! 222! 333! 444`;
Табулација
Карактерите за табулација може да
се фатат со командата '\t':
let res = str.replace(/\t/g, '!');
Како резултат во променливата ќе се запише следново:
`
111
!222
!333
!444
`;
Работа на точката
Командата '.' за мулти-линиски
стринг не ги фаќа карактерите за нова линија:
let res = str.replace(/./g, '!');
Како резултат во променливата ќе се запише следново:
`
!!!
!!!!
!!!!
!!!!
`;
Било кој карактер
За да се фатат сите карактери во мулти-линиски
стринг, се користи трик во форма на
комбинација [\s\S]. Ваква конструкција ќе најде
сите обични карактери и сите нови линии:
let res = str.replace(/[\s\S]/g, '!');
Како резултат во променливата ќе се запише следново:
`!!!!!!!!!!!!!!!!!!`;
Карета (^)
Со модификаторот 'm'
може да се вклучи мулти-линиски режим.
Во овој случај, каретата ќе го фаќа
почетокот на секоја линија:
let res = str.replace(/^/gm, '!');
Како резултат во променливата ќе се запише следново:
`
!111
!222
!333
!444
`;
Долар ($)
Командата '$' во мулти-линиски режим
ќе го фаќа крајот на секоја линија:
let res = str.replace(/$/gm, '!');
Како резултат во променливата ќе се запише следново:
`
111!
222!
333!
444!
`;
Практични задачи
Даден е стринг:
`
abc
def
ghi
jkl
`;
Напишете регуларен израз кој ќе ја направи од оваа низа следната:
`
abc!
def!
ghi!
jkl!
`;
Даден е стринг:
`
abc
def
ghi
jkl
`;
Напишете регуларен израз кој ќе ја направи од оваа низа следната:
`
! abc
! def
! ghi
! jkl
`;
Даден е стринг:
`
abc
def
ghi
jkl
`;
Напишете регуларен израз кој ќе ја направи од оваа низа следната:
`!
abc
def
ghi
jkl
!`;
Даден е стринг:
`
abc
def
ghi
jkl
`;
Напишете регуларен израз кој ќе ја направи од оваа низа следната:
`!
! abc
! def
! ghi
! jkl
!`;
Даден е стринг:
`
abc
def
ghi
jkl
`;
Напишете регуларен израз кој ќе ја направи од оваа низа следната:
`!
abc!
def!
ghi!
jkl!
!`;
Даден е стринг:
`
abc
def
ghi
jkl
`;
Напишете регуларен израз кој ќе ја направи од оваа низа следната:
`
!abc
!def
!ghi
!jkl
`;