JavaScript-də RegExp-də Çoxsətirlilik
Regulyar ifadələr çoxsətirli sətirlərlə işləyərkən özəl xüsusiyyətlərə malikdir. Gəlin aşağıdakı sətir nümunəsində onları araşdıraq, adi simvollar, sətir keçid simvolları və tabulyasiyalar ehtiva edən:
let str = `111
222
333
444`;
Sətirin sonu
Sətir keçid simvollarını
'\n' komandası ilə tutmaq olar:
let res = str.replace(/\n/g, '!');
Nəticədə dəyişənə aşağıdakı qeyd olunacaq (sətirlər arası boşluqlar tabulyasiyadır):
`111! 222! 333! 444`;
Tabulyasiya
Tabulyasiya simvollarını
'\t' komandası ilə tutmaq olar:
let res = str.replace(/\t/g, '!');
Nəticədə dəyişənə aşağıdakı qeyd olunacaq:
`
111
!222
!333
!444
`;
Nöqtənin işi
'.' komandası çoxsətirli
sətir üçün sətir keçid simvollarını tutmur:
let res = str.replace(/./g, '!');
Nəticədə dəyişənə aşağıdakı qeyd olunacaq:
`
!!!
!!!!
!!!!
!!!!
`;
İstənilən simvol
Çoxsətirli sətirdə bütün simvolları tutmaq üçün
[\s\S] kombinasiyası şəklində hiyləgər bir üsul
istifadə olunur. Belə bir konstruksiya
bütün adi simvolları və bütün sətir keçidlərini tapacaq:
let res = str.replace(/[\s\S]/g, '!');
Nəticədə dəyişənə aşağıdakı qeyd olunacaq:
`!!!!!!!!!!!!!!!!!!`;
Şapka
'm' modifikatorunun köməyi ilə
çoxsətirli rejimi aktivləşdirmək olar.
Bu halda şapka hər sətrin
başlanğıcını tutacaq:
let res = str.replace(/^/gm, '!');
Nəticədə dəyişənə aşağıdakı qeyd olunacaq:
`
!111
!222
!333
!444
`;
Dollar
'$' komandası çoxsətirli rejimdə
hər sətrin sonunu tutacaq:
let res = str.replace(/$/gm, '!');
Nəticədə dəyişənə aşağıdakı qeyd olunacaq:
`
111!
222!
333!
444!
`;
Praktiki tapşırıqlar
Sətir verilmişdir:
`
abc
def
ghi
jkl
`;
Bu sətirdən aşağıdakını yaradan regulyar ifadə yazın:
`
abc!
def!
ghi!
jkl!
`;
Sətir verilmişdir:
`
abc
def
ghi
jkl
`;
Bu sətirdən aşağıdakını yaradan regulyar ifadə yazın:
`
! abc
! def
! ghi
! jkl
`;
Sətir verilmişdir:
`
abc
def
ghi
jkl
`;
Bu sətirdən aşağıdakını yaradan regulyar ifadə yazın:
`!
abc
def
ghi
jkl
!`;
Sətir verilmişdir:
`
abc
def
ghi
jkl
`;
Bu sətirdən aşağıdakını yaradan regulyar ifadə yazın:
`!
! abc
! def
! ghi
! jkl
!`;
Sətir verilmişdir:
`
abc
def
ghi
jkl
`;
Bu sətirdən aşağıdakını yaradan regulyar ifadə yazın:
`!
abc!
def!
ghi!
jkl!
!`;
Sətir verilmişdir:
`
abc
def
ghi
jkl
`;
Bu sətirdən aşağıdakını yaradan regulyar ifadə yazın:
`
!abc
!def
!ghi
!jkl
`;