Daudzrinduļa regulārajās izteiksmēs JavaScript
Regulārajām izteiksmēm, strādājot ar daudzrinduļu virknēm, ir savas īpatnības. Apgūsim tās ar šādas virknes piemēru, kas satur parastās rakstzīmes, rindu pārsūtīšanas rakstzīmes un tabulācijas:
let str = `111
222
333
444`;
Rindas pārtraukums
Rindas pārtraukšanas rakstzīmes var
noķert, izmantojot komandu '\n':
let res = str.replace(/\n/g, '!');
Rezultātā mainīgajā tiks ierakstīts sekojošs (attālumi starp rindām ir tabulācijas):
`111! 222! 333! 444`;
Tabulācija
Tabulācijas rakstzīmes var
noķert, izmantojot komandu '\t':
let res = str.replace(/\t/g, '!');
Rezultātā mainīgajā tiks ierakstīts sekojošs:
`
111
!222
!333
!444
`;
Punkta darbība
Komanda '.' daudzrinduļu
virknei neķer rindas pārtraukšanas rakstzīmes:
let res = str.replace(/./g, '!');
Rezultātā mainīgajā tiks ierakstīts sekojošs:
`
!!!
!!!!
!!!!
!!!!
`;
Jebkura rakstzīme
Lai noķertu visas rakstzīmes daudzrinduļu
virknē, tiek izmantots viltīgs paņēmiens
kombinācijas [\s\S] veidā. Šāda konstrukcija atradīs
visas parastās rakstzīmes un visus rindu pārtraukumus:
let res = str.replace(/[\s\S]/g, '!');
Rezultātā mainīgajā tiks ierakstīts sekojošs:
`!!!!!!!!!!!!!!!!!!`;
Kepurīte (^)
Izmantojot modifikatoru 'm',
var ieslēgt daudzrinduļu režīmu.
Šajā gadījumā simbols ^ atradīs
katras rindas sākumu:
let res = str.replace(/^/gm, '!');
Rezultātā mainīgajā tiks ierakstīts sekojošs:
`
!111
!222
!333
!444
`;
Dolāra zīme ($)
Komanda '$' daudzrinduļu režīmā
atradīs katras rindas beigas:
let res = str.replace(/$/gm, '!');
Rezultātā mainīgajā tiks ierakstīts sekojošs:
`
111!
222!
333!
444!
`;
Praktiskie uzdevumi
Dota virkne:
`
abc
def
ghi
jkl
`;
Uzrakstiet regulāro izteiksmi, kas no šīs virknes izveidos sekojošu:
`
abc!
def!
ghi!
jkl!
`;
Dota virkne:
`
abc
def
ghi
jkl
`;
Uzrakstiet regulāro izteiksmi, kas no šīs virknes izveidos sekojošu:
`
! abc
! def
! ghi
! jkl
`;
Dota virkne:
`
abc
def
ghi
jkl
`;
Uzrakstiet regulāro izteiksmi, kas no šīs virknes izveidos sekojošu:
`!
abc
def
ghi
jkl
!`;
Dota virkne:
`
abc
def
ghi
jkl
`;
Uzrakstiet regulāro izteiksmi, kas no šīs virknes izveidos sekojošu:
`!
! abc
! def
! ghi
! jkl
!`;
Dota virkne:
`
abc
def
ghi
jkl
`;
Uzrakstiet regulāro izteiksmi, kas no šīs virknes izveidos sekojošu:
`!
abc!
def!
ghi!
jkl!
!`;
Dota virkne:
`
abc
def
ghi
jkl
`;
Uzrakstiet regulāro izteiksmi, kas no šīs virknes izveidos sekojošu:
`
!abc
!def
!ghi
!jkl
`;