Multiline in JavaScript regexes

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 `;
enru