Operatorët e përsëritjes së karaktereve në regex

Ndodh situata kur duam të tregojmë, që një karakter përsëritet një numër të caktuar herësh. Nëse e dimë numrin e saktë të përsëritjeve, atëherë thjesht mund ta shkruajmë disa herë - #aaaa#. Por çfarë të bëjmë, nëse duam të themi këtë: përsërit një ose më shumë herë?

Për këtë ekzistojnë operatorët (kuantifikues) përsëritjeje: plus + (një ose më shumë herë), yll * (zero ose më shumë herë) dhe pyetje ? (zero ose një herë). Këta operatorë veprojnë mbi atë karakter që qëndron përpara tyre.

Le të shohim punën e këtyre operatorëve në shembuj.

Shembull

Le të gjejmë të gjitha nënvargjet sipas shabllonit shkronjë 'x', shkronjë 'a' një ose më shumë herë, shkronjë 'x':

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

Si rezultat në variabël do të shkruhet kjo:

php'xx ! ! ! xbx'

Shembull

Le të gjejmë të gjitha nënvargjet sipas shabllonit shkronjë 'x', shkronjë 'a' zero ose më shumë herë, shkronjë 'x':

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

Si rezultat në variabël do të shkruhet kjo:

php'! ! ! ! xbx'

Shembull

Le të gjejmë të gjitha nënvargjet sipas shabllonit shkronjë 'x', shkronjë 'a' zero ose një herë, shkronjë 'x':

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

Si rezultat në variabël do të shkruhet kjo:

php'! ! xaax xbx'

Detyra praktike

Задание 1

Është dhënë vargu:

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

Shkruani një regex që do të gjejë vargjet sipas shabllonit: shkronjë 'a', shkronjë 'b' një ose më shumë herë, shkronjë 'a'.

Задание 2

Është dhënë vargu:

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

Shkruani një regex që do të gjejë vargjet sipas shabllonit: shkronjë 'a', shkronjë 'b' zero ose më shumë herë, shkronjë 'a'.

Задание 3

Është dhënë vargu:

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

Shkruani një regex që do të gjejë vargjet sipas shabllonit: shkronjë 'a', shkronjë 'b' një herë ose asnjëherë, shkronjë 'a'.

Задание 4

Është dhënë vargu:

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

Shkruani një regex që do të gjejë vargjet 'aa', 'aba', 'abba', 'abbba', pa kapur 'abca' dhe 'abea'.