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
$str = 'xx xax xaax xaaax xbx';
$res = preg_replace('#xa+x#', '!', $str);
?>
Si rezultat në variabël do të shkruhet kjo:
'xx ! ! ! xbx'
Shembull
Le të gjejmë të gjitha nënvargjet sipas shabllonit shkronjë
'x', shkronjë 'a' zero ose më shumë
herë, shkronjë 'x':
<?php
$str = 'xx xax xaax xaaax xbx';
$res = preg_replace('#xa*x#', '!', $str);
?>
Si rezultat në variabël do të shkruhet kjo:
'! ! ! ! xbx'
Shembull
Le të gjejmë të gjitha nënvargjet sipas shabllonit shkronjë
'x', shkronjë 'a' zero ose një
herë, shkronjë 'x':
<?php
$str = 'xx xax xaax xbx';
$res = preg_replace('#xa?x#', '!', $str);
?>
Si rezultat në variabël do të shkruhet kjo:
'! ! xaax xbx'
Detyra praktike
Është dhënë vargu:
<?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'.
Është dhënë vargu:
<?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'.
Është dhënë vargu:
<?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'.
Është dhënë vargu:
<?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'.