Opérateurs de répétition de caractères dans les regex

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 quelque chose comme : répéter une fois ou plus ?

Pour cela, il existe des opérateurs (quantificateurs) de répétition : le plus + (une fois ou plus), l'astérisque * (zéro fois ou plus) et le point d'interrogation ? (zéro fois 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 fois ou plus, lettre 'x' :

php<?php
  $str = 'xx xax xaax xaaax xbx';
  $res = preg_replace('#xa+x#', '!', $str);
?>

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

php'xx ! ! ! xbx'

Exemple

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

php<?php
  $str = 'xx xax xaax xaaax xbx';
  $res = preg_replace('#xa*x#', '!', $str);
?>

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

php'! ! ! ! xbx'

Exemple

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

php<?php
  $str = 'xx xax xaax xbx';
  $res = preg_replace('#xa?x#', '!', $str);
?>

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

php'! ! xaax xbx'

Problèmes pratiques

Задание 1

Soit la chaîne :

php<?php
  $str = 'aa aba abba abbba abca abea';
?>

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

Задание 2

Soit la chaîne :

php<?php
  $str = 'aa aba abba abbba abca abea';
?>

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

Задание 3

Soit la chaîne :

php<?php
  $str = 'aa aba abba abbba abca abea';
?>

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

Задание 4

Soit la chaîne :

php<?php
  $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'.