Lokkis sulud PHP regulaaravaldistes

Operaatorid +, *, ? on head, kuid nendega ei saa määrata konkreetset korduste arvu. Sel juhul tuleb appi operaator {}.

See töötab järgmiselt: {5} - viis kordust, {2,5} - kordub kahest viieni (mõlemad kaasa arvatud), {2,} - kordub kaks korda või rohkem.

Näide

Selles näites on otsimismustril järgmine välimus: täht 'x', täht 'a' üks või kaks korda, täht 'x':

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

Tulemusena kirjutatakse muutujasse järgmine:

php'xx ! ! xaaax'

Näide

Selles näites on otsimismustril järgmine välimus: täht 'x', täht 'a' kaks korda või rohkem, täht 'x':

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

Tulemusena kirjutatakse muutujasse järgmine:

php'xx xax ! !'

Näide

Selles näites on otsimismustril järgmine välimus: täht 'x', täht 'a' kolm korda, täht 'x':

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

Tulemusena kirjutatakse muutujasse järgmine:

php'xx xax xaax !'

Näide

Selles näites on otsimismustril järgmine välimus: täht 'a' kümme korda:

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

Tulemusena kirjutatakse muutujasse järgmine:

php'aaa ! aaa'

Näide

Selles näites soovis koodi autor sellist mustrit: täht 'x', täht 'a' kolm korda või vähem, täht 'x', kuid kahjuks see - {,3} - ei tööta. Tuleb määrata selgelt:

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

Tulemusena kirjutatakse muutujasse järgmine:

php'xx ! ! !'

Näide

Null on samuti lubatud:

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

Tulemusena kirjutatakse muutujasse järgmine:

php'! ! ! !'

Praktilised ülesanded

Задание 1

Antud on sõne:

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

Kirjutage regulaaravaldis, mis leiab sõned 'abba', 'abbba', 'abbbba' ja ainult need.

Задание 2

Antud on sõne:

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

Kirjutage regulaaravaldis, mis leiab sõned kujul 'aba', milles 'b' esineb vähem kui kolm korda (kaasa arvatud).

Задание 3

Antud on sõne:

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

Kirjutage regulaaravaldis, mis leiab sõned kujul 'aba', milles 'b' esineb rohkem kui neli korda (kaasa arvatud).