Mitmerealine regulaaravaldistes JavaScriptis

Regulaaravaldistel on mitmerealiste stringidega töötamisel oma eripärad. Võtame need läbi järgmise stringi näitel, mis sisaldab tavazeicheneid, reavahetuse sümboleid ja tabelleerimissümboleid:

javascriptlet str = `111
  222
  333
  444`;

Reavahetus

Reavahetuse sümboleid saab püüda käsuga '\n':

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

Tulemusena kirjutatakse muutujasse järgmine (ridade vahelised tühikud on tabelleerimine):

javascript`111!  222!  333!  444`;

Tabelleerimine

Tabelleerimise sümboleid saab püüda käsuga '\t':

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

Tulemusena kirjutatakse muutujasse järgmine:

javascript`
                111
                !222
                !333
                !444
            `;

Punkti töö

Käsk '.' mitmerealise stringi puhul ei püüa reavahetuse sümboleid:

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

Tulemusena kirjutatakse muutujasse järgmine:

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

Suvaline sümbol

Kõikide sümbolite püüdmiseks mitmerealises stringis kasutatakse nutikat võtet kujul kombinatsioon [\s\S]. Selline konstruktsioon leiab kõik tavasümbolid ja kõik reavahetused:

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

Tulemusena kirjutatakse muutujasse järgmine:

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

Katus (^)

Modifikaatoriga 'm' saab sisse lülitada mitmerežiimi. Sellisel juhul hakkab katus (^) püüdma iga rea algust:

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

Tulemusena kirjutatakse muutujasse järgmine:

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

Dollar ($)

Käsk '$' mitmerežiimis hakkab püüdma iga rea lõppu:

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

Tulemusena kirjutatakse muutujasse järgmine:

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

Praktilised ülesanded

Задание 1

Antud on string:

javascript`
  abc
  def
  ghi
  jkl
`;

Kirjutage regulaaravaldis, mis teeb sellest stringist järgmise:

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

Antud on string:

javascript`
  abc
  def
  ghi
  jkl
`;

Kirjutage regulaaravaldis, mis teeb sellest stringist järgmise:

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

Antud on string:

javascript`
  abc
  def
  ghi
  jkl
`;

Kirjutage regulaaravaldis, mis teeb sellest stringist järgmise:

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

Antud on string:

javascript`
  abc
  def
  ghi
  jkl
`;

Kirjutage regulaaravaldis, mis teeb sellest stringist järgmise:

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

Antud on string:

javascript`
  abc
  def
  ghi
  jkl
`;

Kirjutage regulaaravaldis, mis teeb sellest stringist järgmise:

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

Antud on string:

javascript`
  abc
  def
  ghi
  jkl
`;

Kirjutage regulaaravaldis, mis teeb sellest stringist järgmise:

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