Cirtainie iekavas PHP regulārajās izteiksmēs

Operatori +, *, ? ir labi, taču ar to palīdzību nevar norādīt konkrētu atkārtojumu skaitu. Šajā gadījumā jums palīdzēs operators {}.

Tas darbojas šādi: {5} - pieci atkārtojumi, {2,5} - atkārtojas no diviem līdz pieciem (abi ieskaitot), {2,} - atkārtojas divas vai vairāk reizes.

Piemērs

Šajā piemērā meklēšanas šablons izskatās šādi: burti 'x', burts 'a' vienu reizi vai divas reizes, burts 'x':

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

Rezultātā mainīgajā tiks ierakstīts sekojošais:

php'xx ! ! xaaax'

Piemērs

Šajā piemērā meklēšanas šablons izskatās šādi: burti 'x', burts 'a' divas reizes vai vairāk, burts 'x':

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

Rezultātā mainīgajā tiks ierakstīts sekojošais:

php'xx xax ! !'

Piemērs

Šajā piemērā meklēšanas šablons izskatās šādi: burti 'x', burts 'a' trīs reizes, burts 'x':

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

Rezultātā mainīgajā tiks ierakstīts sekojošais:

php'xx xax xaax !'

Piemērs

Šajā piemērā meklēšanas šablons izskatās šādi: burts 'a' desmit reizes:

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

Rezultātā mainīgajā tiks ierakstīts sekojošais:

php'aaa ! aaa'

Piemērs

Šajā piemērā koda autors vēlējās šādu šablonu: burti 'x', burts 'a' trīs reizes reizes vai mazāk, burts 'x', bet diemžēl tāds - {,3} - nedarbojas. Jānorāda skaidri:

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

Rezultātā mainīgajā tiks ierakstīts sekojošais:

php'xx ! ! !'

Piemērs

Nulle arī ir atļauta:

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

Rezultātā mainīgajā tiks ierakstīts sekojošais:

php'! ! ! !'

Praktiskie uzdevumi

Задание 1

Dota virkne:

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

Uzrakstiet regulāro izteiksmi, kas atradīs virknes 'abba', 'abbba', 'abbbba' un tikai tās.

Задание 2

Dota virkne:

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

Uzrakstiet regulāro izteiksmi, kas atradīs virknes veida 'aba', kurās 'b' sastopams mazāk nekā trīs reizes (ieskaitot).

Задание 3

Dota virkne:

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

Uzrakstiet regulāro izteiksmi, kas atradīs virknes veida 'aba', kurās 'b' sastopams vairāk nekā četras reizes (ieskaitot).