Accolades dans les expressions régulières PHP

Les opérateurs +, *, ? sont utiles, cependant, ils ne permettent pas de spécifier un nombre exact de répétitions. Dans ce cas, l'opérateur {} viendra à votre secours.

Il fonctionne de la manière suivante : {5} - cinq répétitions, {2,5} - se répète de deux à cinq fois (inclus), {2,} - se répète deux fois ou plus.

Exemple

Dans cet exemple, le modèle de recherche est le suivant : lettre 'x', lettre 'a' une ou deux fois, lettre 'x' :

php<?php
  $str = 'xx xax xaax xaaax';
  $res = preg_replace('#xa{1,2}x#', '!', $str);
?>

En conséquence, la variable contiendra ceci :

php'xx ! ! xaaax'

Exemple

Dans cet exemple, le modèle de recherche est le suivant : lettre 'x', lettre 'a' deux fois ou plus, lettre 'x' :

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

En conséquence, la variable contiendra ceci :

php'xx xax ! !'

Exemple

Dans cet exemple, le modèle de recherche est le suivant : lettre 'x', lettre 'a' trois fois, lettre 'x' :

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

En conséquence, la variable contiendra ceci :

php'xx xax xaax !'

Exemple

Dans cet exemple, le modèle de recherche est le suivant : lettre 'a' dix fois :

php<?php
  $str = 'aaa aaaaaaaaaa aaa';
  $res = preg_replace('#a{10}#', '!', $str);
?>

En conséquence, la variable contiendra ceci :

php'aaa ! aaa'

Exemple

Dans cet exemple, l'auteur du code voulait ce modèle : lettre 'x', lettre 'a' trois fois ou moins, lettre 'x', mais malheureusement, cela - {,3} - ne fonctionne pas. Il faut spécifier explicitement :

php<?php
  $str = 'xx xax xaax xaaax';
  $res = preg_replace('#xa{1,3}x#', '!', $str);
?>

En conséquence, la variable contiendra ceci :

php'xx ! ! !'

Exemple

Zéro est également autorisé :

php<?php
  $str = 'xx xax xaax xaaax';
  $res = preg_replace('#xa{0,3}x#', '!', $str);
?>

En conséquence, la variable contiendra ceci :

php'! ! ! !'

Problèmes pratiques

Задание 1

Soit une chaîne :

php<?php
  $str = 'aa aba abba abbba abbbba abbbbba';
?>

Écrivez une expression régulière qui trouvera les chaînes 'abba', 'abbba', 'abbbba' et seulement elles.

Задание 2

Soit une chaîne :

php<?php
  $str = 'aa aba abba abbba abbbba abbbbba';
?>

Écrivez une expression régulière qui trouvera les chaînes de type 'aba', dans lesquelles 'b' apparaît moins de trois fois (inclus).

Задание 3

Soit une chaîne :

php<?php
  $str = 'aa aba abba abbba abbbba abbbbba';
?>

Écrivez une expression régulière qui trouvera les chaînes de type 'aba', dans lesquelles 'b' apparaît plus de quatre fois (inclus).