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:
let str = `111
222
333
444`;
Regelterugloop
Regelterugloop karakters kunnen
worden gevangen met het commando '\n':
let res = str.replace(/\n/g, '!');
Als resultaat wordt het volgende in de variabele geschreven (de tussenruimtes tussen de regels zijn tabs):
`111! 222! 333! 444`;
Tab
Tab karakters kunnen
worden gevangen met het commando '\t':
let res = str.replace(/\t/g, '!');
Als resultaat wordt het volgende in de variabele geschreven:
`
111
!222
!333
!444
`;
Werking van de punt
Het commando '.' voor een meerdere regels
string vangt geen regelterugloop karakters:
let res = str.replace(/./g, '!');
Als resultaat wordt het volgende in de variabele geschreven:
`
!!!
!!!!
!!!!
!!!!
`;
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:
let res = str.replace(/[\s\S]/g, '!');
Als resultaat wordt het volgende in de variabele geschreven:
`!!!!!!!!!!!!!!!!!!`;
Dakje (caret)
Met de modifier 'm'
kan de multiregelmodus worden ingeschakeld.
In dit geval zal het dakje het
begin van elke regel vinden:
let res = str.replace(/^/gm, '!');
Als resultaat wordt het volgende in de variabele geschreven:
`
!111
!222
!333
!444
`;
Dollar
Het commando '$' in de multiregelmodus
zal het einde van elke regel vinden:
let res = str.replace(/$/gm, '!');
Als resultaat wordt het volgende in de variabele geschreven:
`
111!
222!
333!
444!
`;
Praktische opdrachten
Gegeven een string:
`
abc
def
ghi
jkl
`;
Schrijf een reguliere expressie die van deze string de volgende maakt:
`
abc!
def!
ghi!
jkl!
`;
Gegeven een string:
`
abc
def
ghi
jkl
`;
Schrijf een reguliere expressie die van deze string de volgende maakt:
`
! abc
! def
! ghi
! jkl
`;
Gegeven een string:
`
abc
def
ghi
jkl
`;
Schrijf een reguliere expressie die van deze string de volgende maakt:
`!
abc
def
ghi
jkl
!`;
Gegeven een string:
`
abc
def
ghi
jkl
`;
Schrijf een reguliere expressie die van deze string de volgende maakt:
`!
! abc
! def
! ghi
! jkl
!`;
Gegeven een string:
`
abc
def
ghi
jkl
`;
Schrijf een reguliere expressie die van deze string de volgende maakt:
`!
abc!
def!
ghi!
jkl!
!`;
Gegeven een string:
`
abc
def
ghi
jkl
`;
Schrijf een reguliere expressie die van deze string de volgende maakt:
`
!abc
!def
!ghi
!jkl
`;