Вишередност у регуларним изразима ЈаваСкрипта
Регуларни изрази при раду са вишередним нискама имају своје специфичности. Хајде да их разумемо на примеру следеће ниске, која садржи обичне знакове, знакове за прелазак у нови ред и табулације:
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
`;