Karakterismétlési operátorok reguláris kifejezésekben

Vannak helyzetek, amikor azt szeretnénk megadni, hogy egy karakter adott számú alkalommal ismétlődik. Ha ismerjük a pontos ismétlődések számát, akkor egyszerűen többször leírhatjuk - #aaaa#. De mit tegyünk, ha azt szeretnénk mondani: ismétlődik egyszer vagy többször?

Erre szolgálnak az (kvantifikátorok) ismétlési operátorok: plusz + (egyszer vagy többször), csillag * (nulla vagy többször) és kérdezőjel ? (nulla vagy egyszer). Ezek az operátorok az előttük álló karakterre vonatkoznak.

Nézzük meg ezeknek az operátoroknak a működését példákon keresztül.

Példa

Keressük meg az összes résztömböt a következő minta szerint: 'x' betű, 'a' betű egyszer vagy többször, 'x' betű:

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

Ennek eredményeként a változóba a következő íródik:

php'xx ! ! ! xbx'

Példa

Keressük meg az összes résztömböt a következő minta szerint: 'x' betű, 'a' betű nulla vagy többször, 'x' betű:

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

Ennek eredményeként a változóba a következő íródik:

php'! ! ! ! xbx'

Példa

Keressük meg az összes résztömböt a következő minta szerint: 'x' betű, 'a' betű nulla vagy egyszer, 'x' betű:

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

Ennek eredményeként a változóba a következő íródik:

php'! ! xaax xbx'

Gyakorlati feladatok

Задание 1

Adott a következő sztring:

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

Írjon reguláris kifejezést, amely megtalálja a sztringeket a következő minta szerint: 'a' betű, 'b' betű egyszer vagy többször, 'a' betű.

Задание 2

Adott a következő sztring:

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

Írjon reguláris kifejezést, amely megtalálja a sztringeket a következő minta szerint: 'a' betű, 'b' betű nulla vagy többször, 'a' betű.

Задание 3

Adott a következő sztring:

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

Írjon reguláris kifejezést, amely megtalálja a sztringeket a következő minta szerint: 'a' betű, 'b' betű egyszer vagy egyszer sem, 'a' betű.

Задание 4

Adott a következő sztring:

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

Írjon reguláris kifejezést, amely megtalálja a 'aa', 'aba', 'abba', 'abbba' sztringeket anélkül, hogy megfogná a 'abca' és 'abea' sztringeket.