Multiregelmatigheid in JavaScript regex

Reguliere expressies hebben hun eigen kenmerken bij het werken met meerdere regels teksten. Laten we ze begrijpen aan de hand van het volgende voorbeeld een string die gewone karakters bevat, regelterugloop karakters en tabs:

javascriptlet str = `111
  222
  333
  444`;

Regelterugloop

Regelterugloop karakters kunnen worden gevangen met het commando '\n':

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

Als resultaat wordt het volgende in de variabele geschreven (de tussenruimtes tussen de regels zijn tabs):

javascript`111!  222!  333!  444`;

Tab

Tab karakters kunnen worden gevangen met het commando '\t':

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

Als resultaat wordt het volgende in de variabele geschreven:

javascript`
                111
                !222
                !333
                !444
            `;

Werking van de punt

Het commando '.' voor een meerdere regels string vangt geen regelterugloop karakters:

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

Als resultaat wordt het volgende in de variabele geschreven:

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

Elk teken

Om alle karakters in een meerdere regels string te vangen, wordt een slimme truc gebruikt in de vorm van de combinatie [\s\S]. Zo'n constructie vindt alle gewone karakters en alle regelteruglopen:

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

Als resultaat wordt het volgende in de variabele geschreven:

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

Dakje (caret)

Met de modifier 'm' kan de multiregelmodus worden ingeschakeld. In dit geval zal het dakje het begin van elke regel vinden:

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

Als resultaat wordt het volgende in de variabele geschreven:

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

Dollar

Het commando '$' in de multiregelmodus zal het einde van elke regel vinden:

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

Als resultaat wordt het volgende in de variabele geschreven:

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

Praktische opdrachten

Задание 1

Gegeven een string:

javascript`
  abc
  def
  ghi
  jkl
`;

Schrijf een reguliere expressie die van deze string de volgende maakt:

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

Gegeven een string:

javascript`
  abc
  def
  ghi
  jkl
`;

Schrijf een reguliere expressie die van deze string de volgende maakt:

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

Gegeven een string:

javascript`
  abc
  def
  ghi
  jkl
`;

Schrijf een reguliere expressie die van deze string de volgende maakt:

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

Gegeven een string:

javascript`
  abc
  def
  ghi
  jkl
`;

Schrijf een reguliere expressie die van deze string de volgende maakt:

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

Gegeven een string:

javascript`
  abc
  def
  ghi
  jkl
`;

Schrijf een reguliere expressie die van deze string de volgende maakt:

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

Gegeven een string:

javascript`
  abc
  def
  ghi
  jkl
`;

Schrijf een reguliere expressie die van deze string de volgende maakt:

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