JavaScriptda RegExlarda Ko'q Qatorlik
Ko'p qatorli matnlar bilan ishlaganda muntazam ifodalar o'ziga xos xususiyatlarga ega. Keling, ularni quyidagi matn misolida o'rganamiz, unda oddiy belgilar, qator almashish belgilari va tabulyatsiyalar mavjud:
let str = `111
222
333
444`;
Qator almashishi
Qator almashish belgilarini
'\n' buyrug'i yordamida topish mumkin:
let res = str.replace(/\n/g, '!');
Natijada o'zgaruvchiga quyidagi qiymat yoziladi (qatorlar orasidagi bo'shliqlar - bu tabulyatsiya):
`111! 222! 333! 444`;
Tabulyatsiya
Tabulyatsiya belgilarini
'\t' buyrug'i yordamida topish mumkin:
let res = str.replace(/\t/g, '!');
Natijada o'zgaruvchiga quyidagi qiymat yoziladi:
`
111
!222
!333
!444
`;
Nuqta belgisining ishlashi
'.' buyrug'i ko'p qatorli
matnlar uchun qator almashish belgilarini topa olmaydi:
let res = str.replace(/./g, '!');
Natijada o'zgaruvchiga quyidagi qiymat yoziladi:
`
!!!
!!!!
!!!!
!!!!
`;
Har qanday belgi
Ko'p qatorli matndagi barcha belgilarni topish uchun
[\s\S] kombinatsiyasidan foydalaniladigan ayyor usul qo'llaniladi.
Bunday konstruksiya barcha oddiy belgilarni va barcha qator almashishlarini topadi:
let res = str.replace(/[\s\S]/g, '!');
Natijada o'zgaruvchiga quyidagi qiymat yoziladi:
`!!!!!!!!!!!!!!!!!!`;
Shlyapa (^) belgisi
'm' modifikatori yordamida
ko'p qatorli rejimni yoqish mumkin.
Bunda shlyapa belgisi har bir
qatorning boshini topadi:
let res = str.replace(/^/gm, '!');
Natijada o'zgaruvchiga quyidagi qiymat yoziladi:
`
!111
!222
!333
!444
`;
Dollar ($) belgisi
'
buyrug'i ko'p qatorli rejimda
har bir qatorning oxirini topadi:
let res = str.replace(/$/gm, '!');
Natijada o'zgaruvchiga quyidagi qiymat yoziladi:
`
111!
222!
333!
444!
`;
Amaliy vazifalar
Quyidagi matn berilgan:
`
abc
def
ghi
jkl
`;
Ushbu matnni quyidagicha o'zgartiruvchi muntazam ifoda yozing:
`
abc!
def!
ghi!
jkl!
`;
Quyidagi matn berilgan:
`
abc
def
ghi
jkl
`;
Ushbu matnni quyidagicha o'zgartiruvchi muntazam ifoda yozing:
`
! abc
! def
! ghi
! jkl
`;
Quyidagi matn berilgan:
`
abc
def
ghi
jkl
`;
Ushbu matnni quyidagicha o'zgartiruvchi muntazam ifoda yozing:
`!
abc
def
ghi
jkl
!`;
Quyidagi matn berilgan:
`
abc
def
ghi
jkl
`;
Ushbu matnni quyidagicha o'zgartiruvchi muntazam ifoda yozing:
`!
! abc
! def
! ghi
! jkl
!`;
Quyidagi matn berilgan:
`
abc
def
ghi
jkl
`;
Ushbu matnni quyidagicha o'zgartiruvchi muntazam ifoda yozing:
`!
abc!
def!
ghi!
jkl!
!`;
Quyidagi matn berilgan:
`
abc
def
ghi
jkl
`;
Ushbu matnni quyidagicha o'zgartiruvchi muntazam ifoda yozing:
`
!abc
!def
!ghi
!jkl
`;