Pelbagai Baris dalam Regex JavaScript
Ungkapan biasa apabila bekerja dengan rentetan pelbagai baris mempunyai ciri-ciri tersendiri. Mari kita fahami mereka menggunakan contoh rentetan berikut, yang mengandungi aksara biasa, aksara baris baru dan tab:
let str = `111
222
333
444`;
Baris Baru
Aksara baris baru boleh
ditangkap menggunakan perintah '\n':
let res = str.replace(/\n/g, '!');
Hasilnya, yang berikut akan ditulis ke dalam pembolehubah (jarak antara baris adalah tab):
`111! 222! 333! 444`;
Tab
Aksara tab boleh
ditangkap menggunakan perintah '\t':
let res = str.replace(/\t/g, '!');
Hasilnya, yang berikut akan ditulis ke dalam pembolehubah:
`
111
!222
!333
!444
`;
Perilaku Titik
Perintah '.' untuk rentetan
pelbagai baris tidak menangkap aksara baris baru:
let res = str.replace(/./g, '!');
Hasilnya, yang berikut akan ditulis ke dalam pembolehubah:
`
!!!
!!!!
!!!!
!!!!
`;
Mana-mana Aksara
Untuk menangkap semua aksara dalam rentetan
pelbagai baris, satu helah digunakan iaitu
gabungan [\s\S]. Konstruksi sedemikian akan mencari
semua aksara biasa dan semua baris baru:
let res = str.replace(/[\s\S]/g, '!');
Hasilnya, yang berikut akan ditulis ke dalam pembolehubah:
`!!!!!!!!!!!!!!!!!!`;
Tanda Pangkat (^)
Dengan pengubah 'm'
anda boleh menghidupkan mod pelbagai baris.
Dalam kes ini, tanda pangkat (^) akan menangkap
permulaan setiap baris:
let res = str.replace(/^/gm, '!');
Hasilnya, yang berikut akan ditulis ke dalam pembolehubah:
`
!111
!222
!333
!444
`;
Tanda Dolar ($)
Perintah '$' dalam mod pelbagai baris
akan menangkap penghujung setiap baris:
let res = str.replace(/$/gm, '!');
Hasilnya, yang berikut akan ditulis ke dalam pembolehubah:
`
111!
222!
333!
444!
`;
Masalah Praktikal
Diberi rentetan:
`
abc
def
ghi
jkl
`;
Tulis ungkapan biasa yang akan menjadikan rentetan ini kepada yang berikut:
`
abc!
def!
ghi!
jkl!
`;
Diberi rentetan:
`
abc
def
ghi
jkl
`;
Tulis ungkapan biasa yang akan menjadikan rentetan ini kepada yang berikut:
`
! abc
! def
! ghi
! jkl
`;
Diberi rentetan:
`
abc
def
ghi
jkl
`;
Tulis ungkapan biasa yang akan menjadikan rentetan ini kepada yang berikut:
`!
abc
def
ghi
jkl
!`;
Diberi rentetan:
`
abc
def
ghi
jkl
`;
Tulis ungkapan biasa yang akan menjadikan rentetan ini kepada yang berikut:
`!
! abc
! def
! ghi
! jkl
!`;
Diberi rentetan:
`
abc
def
ghi
jkl
`;
Tulis ungkapan biasa yang akan menjadikan rentetan ini kepada yang berikut:
`!
abc!
def!
ghi!
jkl!
!`;
Diberi rentetan:
`
abc
def
ghi
jkl
`;
Tulis ungkapan biasa yang akan menjadikan rentetan ini kepada yang berikut:
`
!abc
!def
!ghi
!jkl
`;