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:

javascriptlet str = `111
  222
  333
  444`;

Baris Baru

Aksara baris baru boleh ditangkap menggunakan perintah '\n':

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

Hasilnya, yang berikut akan ditulis ke dalam pembolehubah (jarak antara baris adalah tab):

javascript`111!  222!  333!  444`;

Tab

Aksara tab boleh ditangkap menggunakan perintah '\t':

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

Hasilnya, yang berikut akan ditulis ke dalam pembolehubah:

javascript`
                111
                !222
                !333
                !444
            `;

Perilaku Titik

Perintah '.' untuk rentetan pelbagai baris tidak menangkap aksara baris baru:

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

Hasilnya, yang berikut akan ditulis ke dalam pembolehubah:

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

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:

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

Hasilnya, yang berikut akan ditulis ke dalam pembolehubah:

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

Tanda Pangkat (^)

Dengan pengubah 'm' anda boleh menghidupkan mod pelbagai baris. Dalam kes ini, tanda pangkat (^) akan menangkap permulaan setiap baris:

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

Hasilnya, yang berikut akan ditulis ke dalam pembolehubah:

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

Tanda Dolar ($)

Perintah '$' dalam mod pelbagai baris akan menangkap penghujung setiap baris:

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

Hasilnya, yang berikut akan ditulis ke dalam pembolehubah:

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

Masalah Praktikal

Задание 1

Diberi rentetan:

javascript`
  abc
  def
  ghi
  jkl
`;

Tulis ungkapan biasa yang akan menjadikan rentetan ini kepada yang berikut:

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

Diberi rentetan:

javascript`
  abc
  def
  ghi
  jkl
`;

Tulis ungkapan biasa yang akan menjadikan rentetan ini kepada yang berikut:

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

Diberi rentetan:

javascript`
  abc
  def
  ghi
  jkl
`;

Tulis ungkapan biasa yang akan menjadikan rentetan ini kepada yang berikut:

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

Diberi rentetan:

javascript`
  abc
  def
  ghi
  jkl
`;

Tulis ungkapan biasa yang akan menjadikan rentetan ini kepada yang berikut:

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

Diberi rentetan:

javascript`
  abc
  def
  ghi
  jkl
`;

Tulis ungkapan biasa yang akan menjadikan rentetan ini kepada yang berikut:

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

Diberi rentetan:

javascript`
  abc
  def
  ghi
  jkl
`;

Tulis ungkapan biasa yang akan menjadikan rentetan ini kepada yang berikut:

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