Оператори понављања знакова у регуларним изразима
Постоје ситуације када желимо да наведемо
да се знак понавља задати број
пута. Ако знамо тачан број понављања,
можемо га једноставно написати више пута
- #aaaa#. Али шта радити ако желимо
да кажемо ово: поновити један или више
пута?
За то постоје оператори (квантификатори)
понављања: плус + (један или више пута),
звездица * (нула или више пута) и
упитник ? (нула или један пут). Ови
оператори делују на онај знак који
стоји испред њих.
Хајде да погледамо рад ових оператора на примерима.
Пример
Пронађимо све поднизове по шаблону слово
'x', слово 'a' један или више
пута, слово 'x':
<?php
$str = 'xx xax xaax xaaax xbx';
$res = preg_replace('#xa+x#', '!', $str);
?>
Као резултат у променљиву ће бити уписано следеће:
'xx ! ! ! xbx'
Пример
Пронађимо све поднизове по шаблону слово
'x', слово 'a' нула или више
пута, слово 'x':
<?php
$str = 'xx xax xaax xaaax xbx';
$res = preg_replace('#xa*x#', '!', $str);
?>
Као резултат у променљиву ће бити уписано следеће:
'! ! ! ! xbx'
Пример
Пронађимо све поднизове по шаблону слово
'x', слово 'a' нула или један
пут, слово 'x':
<?php
$str = 'xx xax xaax xbx';
$res = preg_replace('#xa?x#', '!', $str);
?>
Као резултат у променљиву ће бити уписано следеће:
'! ! xaax xbx'
Практични задаци
Дат је низ:
<?php
$str = 'aa aba abba abbba abca abea';
?>
Напишите регуларни израз који ће пронаћи низове
по шаблону: слово 'a', слово 'b'
један или више пута, слово 'a'.
Дат је низ:
<?php
$str = 'aa aba abba abbba abca abea';
?>
Напишите регуларни израз који ће пронаћи низове
по шаблону: слово 'a', слово 'b'
нула или више пута, слово 'a'.
Дат је низ:
<?php
$str = 'aa aba abba abbba abca abea';
?>
Напишите регуларни израз који ће пронаћи низове
по шаблону: слово 'a', слово 'b'
једанпут или ни једном, слово 'a'.
Дат је низ:
<?php
$str = 'aa aba abba abbba abca abea';
?>
Напишите регуларни израз који ће пронаћи низове
'aa', 'aba', 'abba',
'abbba', а да не ухвати 'abca'
и 'abea'.