Veelvuldigheid in JavaScript Regex

Reëlmatige uitdrukkings het hul eienaardighede wanneer hulle met veellyn snare werk. Laat ons dit ontleed aan die hand van die volgende string, wat gewone karakters bevat, reëlskuiwing karakters en inspringings:

javascriptlet str = `111
  222
  333
  444`;

Reëlskuiwing

Reëlskuiwing karakter kan gevang word met die opdrag '\n':

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

As gevolg sal die volgende in die veranderlike weggeskryf word (die spasies tussen die lyne is inspringing):

javascript`111!  222!  333!  444`;

Inspringing

Inspringing karakters kan gevang word met die opdrag '\t':

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

As gevolg sal die volgende in die veranderlike weggeskryf word:

javascript`
                111
                !222
                !333
                !444
            `;

Werk van die punt

Die opdrag '.' vir 'n veelvuldige string vang nie reëlskuiwing karakters nie:

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

As gevolg sal die volgende in die veranderlike weggeskryf word:

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

Enige karakter

Om alle karakters in 'n veelvuldige string te vang, word 'n slim truuk gebruik in die vorm van die kombinasie [\s\S]. So 'n konstruksie sal vind alle gewone karakters en alle reëlafloop:

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

As gevolg sal die volgende in die veranderlike weggeskryf word:

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

Hoedjie

Met die modifiseerder 'm' kan die veelvuldige modus aangeskakel word. In hierdie geval sal die hoedjie die begin van elke lyn vang:

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

As gevolg sal die volgende in die veranderlike weggeskryf word:

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

Dollar

Die opdrag '$' in die veelvuldige modus sal die einde van elke lyn vang:

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

As gevolg sal die volgende in die veranderlike weggeskryf word:

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

Praktiese take

Задание 1

Gegee 'n string:

javascript`
  abc
  def
  ghi
  jkl
`;

Skryf 'n reëlmatige uitdrukking wat van hierdie string die volgende sal maak:

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

Gegee 'n string:

javascript`
  abc
  def
  ghi
  jkl
`;

Skryf 'n reëlmatige uitdrukking wat van hierdie string die volgende sal maak:

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

Gegee 'n string:

javascript`
  abc
  def
  ghi
  jkl
`;

Skryf 'n reëlmatige uitdrukking wat van hierdie string die volgende sal maak:

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

Gegee 'n string:

javascript`
  abc
  def
  ghi
  jkl
`;

Skryf 'n reëlmatige uitdrukking wat van hierdie string die volgende sal maak:

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

Gegee 'n string:

javascript`
  abc
  def
  ghi
  jkl
`;

Skryf 'n reëlmatige uitdrukking wat van hierdie string die volgende sal maak:

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

Gegee 'n string:

javascript`
  abc
  def
  ghi
  jkl
`;

Skryf 'n reëlmatige uitdrukking wat van hierdie string die volgende sal maak:

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