De 'of'-opdracht in reguliere expressies JavaScript

In deze les behandelen we de opdracht '|', wat een krachtigere variant is van 'of' vergeleken met de opdracht [ ]. Deze opdracht maakt het mogelijk om de reguliere expressie in meerdere delen te splitsen. Het gezochte kan dan voldoen aan het ene deel van de reguliere expressie, of aan het andere. Laten we dit bekijken aan de hand van voorbeelden.

Voorbeeld

In dit voorbeeld is het zoekpatroon als volgt: drie letters 'a' of drie letters 'b':

javascriptlet str = 'aaa bbb abb';
let res = str.replace(/a{3}|b{3}/g, '!');

Het resultaat in de variabele is als volgt:

javascript'! ! abb'

Voorbeeld

In dit voorbeeld is het zoekpatroon als volgt: drie letters 'a' of van 1 of meer letters 'b':

javascriptlet str = 'aaa bbb bbbb bbbbb axx';
let res = str.replace(/a{3}|b+/g, '!');

Het resultaat in de variabele is als volgt:

javascript'! ! ! ! axx'

Voorbeeld

In dit voorbeeld is het zoekpatroon als volgt: één of meer letters of drie cijfers:

javascriptlet str = 'a ab abc 1 12 123';
let res = str.replace(/[a-z]+|\d{3}/g, '!');

Het resultaat in de variabele is als volgt:

javascript'! ! ! 1 12 !'

Voorbeeld

De verticale streep kan de reguliere expressie verdelen in niet alleen twee delen, maar in elk gewenst aantal delen:

javascriptlet str = 'aaa bbb ccc ddd';
let res = str.replace(/a+|b+|c+/g, '!');

Het resultaat in de variabele is als volgt:

javascript'! ! ! ddd'

Voorbeeld

Als de verticale streep binnen ronde haakjes staat, dan werkt 'of' alleen binnen deze haakjes.

Laten we als voorbeeld strings zoeken volgens het volgende patroon: aan het begin staat of 'a', of 'b' één of meer keer, en daarna twee letters 'x':

javascriptlet str = 'axx bxx bbxx exx';
let res = str.replace(/(a|b+)xx/g, '!');

Het resultaat in de variabele is als volgt:

javascript'! ! ! exx'

Praktische opdrachten

Задание 1

Gegeven de string:

javascriptlet str = 'aeeea aeea aea axa axxa axxxa';

Schrijf een reguliere expressie die strings vindt volgens het patroon: aan de randen staan de letters 'a', en daartussen - of de letter 'e' een willekeurig aantal keer of de letter 'x' een willekeurig aantal keer.

Задание 2

Gegeven de string:

javascriptlet str = 'aeeea aeea aea axa axxa axxxa';

Schrijf een reguliere expressie die strings vindt volgens het patroon: aan de randen staan de letters 'a', en daartussen - of de letter 'e' twee keer of de letter 'x' een willekeurig aantal keer.