Multibaris dalam Regex JavaScript
Ekspresi reguler saat bekerja dengan string multibaris memiliki karakteristiknya sendiri. Mari kita pahami karakteristik tersebut dengan contoh string berikut, yang berisi karakter biasa, karakter baris baru dan tab:
let str = `111
222
333
444`;
Baris Baru
Karakter baris baru dapat
ditangkap dengan perintah '\n':
let res = str.replace(/\n/g, '!');
Hasilnya, variabel akan berisi nilai berikut (jarak antar baris adalah tab):
`111! 222! 333! 444`;
Tab
Karakter tab dapat
ditangkap dengan perintah '\t':
let res = str.replace(/\t/g, '!');
Hasilnya, variabel akan berisi nilai berikut:
`
111
!222
!333
!444
`;
Perilaku Titik
Perintah '.' untuk string multibaris
tidak menangkap karakter baris baru:
let res = str.replace(/./g, '!');
Hasilnya, variabel akan berisi nilai berikut:
`
!!!
!!!!
!!!!
!!!!
`;
Karakter Apa Saja
Untuk menangkap semua karakter dalam string multibaris,
digunakan trik pintas berupa
kombinasi [\s\S]. Konstruksi seperti ini akan menemukan
semua karakter biasa dan semua baris baru:
let res = str.replace(/[\s\S]/g, '!');
Hasilnya, variabel akan berisi nilai berikut:
`!!!!!!!!!!!!!!!!!!`;
Tanda Sisipan (Caret)
Dengan modifier 'm'
Anda dapat mengaktifkan mode multibaris.
Dalam hal ini, tanda sisipan akan menangkap
awal setiap baris:
let res = str.replace(/^/gm, '!');
Hasilnya, variabel akan berisi nilai berikut:
`
!111
!222
!333
!444
`;
Tanda Dolar
Perintah '$' dalam mode multibaris
akan menangkap akhir setiap baris:
let res = str.replace(/$/gm, '!');
Hasilnya, variabel akan berisi nilai berikut:
`
111!
222!
333!
444!
`;
Tugas Praktis
Diberikan string:
`
abc
def
ghi
jkl
`;
Tuliskan ekspresi reguler yang akan mengubah string ini menjadi berikut:
`
abc!
def!
ghi!
jkl!
`;
Diberikan string:
`
abc
def
ghi
jkl
`;
Tuliskan ekspresi reguler yang akan mengubah string ini menjadi berikut:
`
! abc
! def
! ghi
! jkl
`;
Diberikan string:
`
abc
def
ghi
jkl
`;
Tuliskan ekspresi reguler yang akan mengubah string ini menjadi berikut:
`!
abc
def
ghi
jkl
!`;
Diberikan string:
`
abc
def
ghi
jkl
`;
Tuliskan ekspresi reguler yang akan mengubah string ini menjadi berikut:
`!
! abc
! def
! ghi
! jkl
!`;
Diberikan string:
`
abc
def
ghi
jkl
`;
Tuliskan ekspresi reguler yang akan mengubah string ini menjadi berikut:
`!
abc!
def!
ghi!
jkl!
!`;
Diberikan string:
`
abc
def
ghi
jkl
`;
Tuliskan ekspresi reguler yang akan mengubah string ini menjadi berikut:
`
!abc
!def
!ghi
!jkl
`;