Opérateurs de répétition de caractères

Il arrive que nous souhaitions indiquer qu'un caractère se répète un certain nombre de fois. Si nous connaissons le nombre exact de répétitions, nous pouvons simplement l'écrire plusieurs fois - /aaaa/. Mais que faire si nous voulons dire ceci : répéter une ou plusieurs fois ?

Pour cela, il existe des opérateurs (quantificateurs) de répétition : le plus + (une ou plusieurs fois), l'astérisque * (zéro ou plusieurs fois) et le point d'interrogation ? (zéro ou une fois). Ces opérateurs agissent sur le caractère qui les précède.

Examinons le fonctionnement de ces opérateurs à l'aide d'exemples.

Exemple

Trouvons toutes les sous-chaînes selon le motif lettre 'x', lettre 'a' une ou plusieurs fois, lettre 'x' :

javascriptlet str = 'xx xax xaax xaaax xbx';
let res = str.replace(/xa+x/g, '!');

En conséquence, la variable contiendra ce qui suit :

javascript'xx ! ! ! xbx'

Exemple

Trouvons toutes les sous-chaînes selon le motif lettre 'x', lettre 'a' zéro ou plusieurs fois, lettre 'x' :

javascriptlet str = 'xx xax xaax xaaax xbx'
let res = str.replace(/xa*x/g, '!');

En conséquence, la variable contiendra ce qui suit :

javascript'! ! ! ! xbx'

Exemple

Trouvons toutes les sous-chaînes selon le motif lettre 'x', lettre 'a' zéro ou une fois, lettre 'x' :

javascriptlet str = 'xx xax xaax xbx';
let res = str.replace(/xa?x/g, '!');

En conséquence, la variable contiendra ce qui suit :

javascript'! ! xaax xbx'

Problèmes pratiques

Задание 1

Soit une chaîne :

javascriptlet str = 'aa aba abba abbba abca abea';

Écrivez une expression régulière qui trouvera les chaînes 'aba', 'abba', 'abbba' selon le motif : lettre 'a', lettre 'b' un nombre quelconque de fois, lettre 'a'.

Задание 2

Soit une chaîne :

javascriptlet str = 'aa aba abba abbba abca abea';

Écrivez une expression régulière qui trouvera les chaînes 'aa', 'aba', 'abba', 'abbba' selon le motif : lettre 'a', lettre 'b' un nombre quelconque de fois (y compris zéro fois), lettre 'a'.

Задание 3

Soit une chaîne :

javascriptlet str = 'aa aba abba abbba abca abea';

Écrivez une expression régulière qui trouvera les chaînes 'aa', 'aba' selon le motif : lettre 'a', lettre 'b' une fois ou zéro, lettre 'a'.

Задание 4

Soit une chaîne :

javascriptlet str = 'aa aba abba abbba abca abea';

Écrivez une expression régulière qui trouvera les chaînes 'aa', 'aba', 'abba', 'abbba', sans capturer 'abca' et 'abea'.