Regexes when working with multiline strings have their own features. Let's deal with them using an example of the following string usual characters, newlines and tabs characters:
let str = `111
222
333
444`;
Newline
Newline characters can be caught
with the '\n'
command:
let res = str.replace(/\n/g, '!');
As a result, the following will be written to the variable (the spaces between the lines are tabulation):
`111! 222! 333! 444`;
Tabulation
Tab characters can be caught with
the '\t'
command:
let res = str.replace(/\t/g, '!');
As a result, the following will be written to the variable:
`
111
!222
!333
!444
`;
Dot character
The '.'
command for a multiline
string doesn't catch newline characters:
let res = str.replace(/./g, '!');
As a result, the following will be written to the variable:
`
!!!
!!!!
!!!!
!!!!
`;
Any character
To catch all the characters in a multiline
string, a tricky trick is used in the form
of a [\s\S]
combination. This
construction will find all usual characters
and all newlines:
let res = str.replace(/[\s\S]/g, '!');
As a result, the following will be written to the variable:
`!!!!!!!!!!!!!!!!!!`;
Hat
With the 'm'
modifier you can enable
multiline mode. In this case, the hat will
catch the beginning of each line:
let res = str.replace(/^/gm, '!');
As a result, the following will be written to the variable:
`
!111
!222
!333
!444
`;
Dollar
The '$'
command in multiline mode
will catch the end of each line:
let res = str.replace(/$/gm, '!');
As a result, the following will be written to the variable:
`
111!
222!
333!
444!
`;
Practical tasks
Given a string:
`
abc
def
ghi
jkl
`;
Write a regex that will make this string the following:
`
abc!
def!
ghi!
jkl!
`;
Given a string:
`
abc
def
ghi
jkl
`;
Write a regex that will make this string the following:
`
! abc
! def
! ghi
! jkl
`;
Given a string:
`
abc
def
ghi
jkl
`;
Write a regex that will make this string the following:
`!
abc
def
ghi
jkl
!`;
Given a string:
`
abc
def
ghi
jkl
`;
Write a regex that will make this string the following:
`!
! abc
! def
! ghi
! jkl
!`;
Given a string:
`
abc
def
ghi
jkl
`;
Write a regex that will make this string the following:
`!
abc!
def!
ghi!
jkl!
!`;
Given a string:
`
abc
def
ghi
jkl
`;
Write a regex that will make this string the following:
`
!abc
!def
!ghi
!jkl
`;