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:

javascriptlet str = `111
  222
  333
  444`;

Baris Baru

Karakter baris baru dapat ditangkap dengan perintah '\n':

javascriptlet res = str.replace(/\n/g, '!');

Hasilnya, variabel akan berisi nilai berikut (jarak antar baris adalah tab):

javascript`111!  222!  333!  444`;

Tab

Karakter tab dapat ditangkap dengan perintah '\t':

javascriptlet res = str.replace(/\t/g, '!');

Hasilnya, variabel akan berisi nilai berikut:

javascript`
                111
                !222
                !333
                !444
            `;

Perilaku Titik

Perintah '.' untuk string multibaris tidak menangkap karakter baris baru:

javascriptlet res = str.replace(/./g, '!');

Hasilnya, variabel akan berisi nilai berikut:

javascript`
                !!!
                !!!!
                !!!!
                !!!!
            `;

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:

javascriptlet res = str.replace(/[\s\S]/g, '!');

Hasilnya, variabel akan berisi nilai berikut:

javascript`!!!!!!!!!!!!!!!!!!`;

Tanda Sisipan (Caret)

Dengan modifier 'm' Anda dapat mengaktifkan mode multibaris. Dalam hal ini, tanda sisipan akan menangkap awal setiap baris:

javascriptlet res = str.replace(/^/gm, '!');

Hasilnya, variabel akan berisi nilai berikut:

javascript`
                !111
                !222
                !333
                !444
            `;

Tanda Dolar

Perintah '$' dalam mode multibaris akan menangkap akhir setiap baris:

javascriptlet res = str.replace(/$/gm, '!');

Hasilnya, variabel akan berisi nilai berikut:

javascript`
                111!
  222!
  333!
  444!
            `;

Tugas Praktis

Задание 1

Diberikan string:

javascript`
  abc
  def
  ghi
  jkl
`;

Tuliskan ekspresi reguler yang akan mengubah string ini menjadi berikut:

javascript`
  abc!
  def!
  ghi!
  jkl!
`;
Задание 2

Diberikan string:

javascript`
  abc
  def
  ghi
  jkl
`;

Tuliskan ekspresi reguler yang akan mengubah string ini menjadi berikut:

javascript`
!  abc
!  def
!  ghi
!  jkl
`;
Задание 3

Diberikan string:

javascript`
  abc
  def
  ghi
  jkl
`;

Tuliskan ekspresi reguler yang akan mengubah string ini menjadi berikut:

javascript`!
  abc
  def
  ghi
  jkl
!`;
Задание 4

Diberikan string:

javascript`
  abc
  def
  ghi
  jkl
`;

Tuliskan ekspresi reguler yang akan mengubah string ini menjadi berikut:

javascript`!
!  abc
!  def
!  ghi
!  jkl
!`;
Задание 5

Diberikan string:

javascript`
  abc
  def
  ghi
  jkl
`;

Tuliskan ekspresi reguler yang akan mengubah string ini menjadi berikut:

javascript`!
  abc!
  def!
  ghi!
  jkl!
!`;
Задание 6

Diberikan string:

javascript`
  abc
  def
  ghi
  jkl
`;

Tuliskan ekspresi reguler yang akan mengubah string ini menjadi berikut:

javascript`
                    !abc
                    !def
                    !ghi
                    !jkl
`;