Tekengroepen in reguliere expressies JavaScript

Er zijn speciale commando's die het mogelijk maken om direct hele groepen tekens te selecteren. Het commando \d betekent een cijfer van 0 tot 9. Het commando \w staat voor een cijfer, een Latijnse letter of een underscore. Het commando \s staat voor een spatie of een witruimte-teken: spatie, nieuwe regel, tabulatie. Je kunt de betekenis van het commando omkeren door een hoofdletter te gebruiken: bijvoorbeeld, als \d een cijfer is, dan is \D geen cijfer.

Voorbeeld

Laten we alle cijfers zoeken:

javascriptlet str = '1 12 123';
let res = str.replace(/\d/g, '!');

Als resultaat wordt het volgende in de variabele geschreven:

javascript'! !! !!!'

Voorbeeld

Herhalingsoperatoren beschouwen de commando-groepen als een geheel, dat wil zeggen dat groeperende haakjes niet nodig zijn. In het volgende voorbeeld ziet het zoekpatroon er als volgt uit: cijfer van 0 tot 9 een of meer keer:

javascriptlet str = '1 12 123 abc @@@';
let res = str.replace(/\d+/g, '!');

Als resultaat wordt het volgende in de variabele geschreven:

javascript'! ! ! abc @@@'

Voorbeeld

In het volgende voorbeeld ziet het zoekpatroon er als volgt uit: alles een of meer keer, maar geen cijfer van 0 tot 9:

javascriptlet str = '123abc3@@';
let res = str.replace(/\D+/g, '!');

Als resultaat wordt het volgende in de variabele geschreven:

javascript'123!3!'

Voorbeeld

In dit voorbeeld ziet het zoekpatroon er als volgt uit: witruimte-teken één keer:

javascriptlet str = '1 12 123 abc @@@';
let res = str.replace(/\s/g, '!');

Als resultaat wordt het volgende in de variabele geschreven:

javascript'1!12!123!abc!@@@'

Voorbeeld

In dit voorbeeld ziet het zoekpatroon er als volgt uit: GEEN witruimte-teken een of meer keer. Alle substrings, gescheiden door spaties, worden vervangen door '!':

javascriptlet str = '1 12 123 abc @@@';
let res = str.replace(/\S+/g, '!');

Als resultaat wordt het volgende in de variabele geschreven:

javascript'! ! ! ! !'

Voorbeeld

In dit voorbeeld ziet het zoekpatroon er als volgt uit: cijfer of letter een of meer keer. Alle substrings, bestaande uit cijfers en letters, worden vervangen door '!':

javascriptlet str = '1 12 123a Abc @@@';
let res = str.replace(/\w+/g, '!');

Als resultaat wordt het volgende in de variabele geschreven:

javascript'! ! ! ! @@@'

Voorbeeld

In dit voorbeeld ziet het zoekpatroon er als volgt uit: GEEN cijfer en GEEN letter een of meer keer. In ons geval vallen hieronder '@@@' en alle spaties (die zijn immers ook geen cijfers en geen letters). Let op het feit dat er aan het einde één '!' staat - hierin is de string ' @@@' omgezet - met een spatie vooraan:

javascriptlet str = '1 12 123 Abc @@@';
let res = str.replace(/\W+/g, '!');

Als resultaat wordt het volgende in de variabele geschreven:

javascript'1!12!123!Abc!'

Praktische opdrachten

Задание 1

Gegeven een string:

javascriptlet str = 'a1a a2a a3a a4a a5a aba aca';

Schrijf een reguliere expressie die de strings vindt, waarin aan de randen de letters 'a' staan, en daartussen één cijfer.

Задание 2

Gegeven een string:

javascriptlet str = 'a1a a22a a333a a4444a a55555a aba aca';

Schrijf een reguliere expressie die de strings vindt, waarin aan de randen de letters 'a' staan, en daartussen een willekeurig aantal cijfers.

Задание 3

Gegeven een string:

javascriptlet str = 'aa a1a a22a a333a a4444a a55555a aba aca';

Schrijf een reguliere expressie die de strings vindt, waarin aan de randen de letters 'a' staan, en daartussen een willekeurig aantal cijfers (inclusief geen cijfers, dat wil zeggen de string 'aa').

Задание 4

Gegeven een string:

javascriptlet str = 'avb a1b a2b a3b a4b a5b abb acb';

Schrijf een reguliere expressie die de strings vindt van het volgende type: aan de randen staan de letters 'a' en 'b', en daartussen - geen cijfer en geen spatie.

Задание 5

Gegeven een string:

javascriptlet str = 'ave a#b a2b a$b a4b a5b a-b acb';

Schrijf een reguliere expressie die de strings vindt van het volgende type: aan de randen staan de letters 'a' en 'b', en daartussen - geen letter, geen cijfer en geen spatie.

Задание 6

Gegeven een string:

javascriptlet str = 'ave a#a a2a a$a a4a a5a a-a aca';

Schrijf een reguliere expressie die alle spaties vervangt door '!'.