Ծալված փակագծերը PHP-ի կանոնավոր արտահայտություններում

+, *, ? օպերատորները լավն են, սակայն, դրանց օգնությամբ հնարավոր չէ նշել կոնկրետ կրկնությունների թիվը: Այս դեպքում ձեզ կօգնի {} օպերատորը:

Այն աշխատում է հետևյալ կերպ. {5} - հինգ կրկնություն, {2,5} - կրկնվում է երկուսից հինգ (երկուսն էլ ներառյալ), {2,} - կրկնվում է երկու և ավելի անգամ:

Օրինակ

Այս օրինակում որոնման կաղապարն ունի հետևյալ տեսքը. 'x' տառ, 'a' տառ մեկ կամ երկու անգամ, 'x' տառ:

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

Արդյունքում փոփոխականի մեջ կգրվի հետևյալը.

php'xx ! ! xaaax'

Օրինակ

Այս օրինակում որոնման կաղապարն ունի հետևյալ տեսքը. 'x' տառ, 'a' տառ երկու անգամ և ավելի, 'x' տառ:

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

Արդյունքում փոփոխականի մեջ կգրվի հետևյալը.

php'xx xax ! !'

Օրինակ

Այս օրինակում որոնման կաղապարն ունի հետևյալ տեսքը. 'x' տառ, 'a' տառ երեք անգամ, 'x' տառ:

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

Արդյունքում փոփոխականի մեջ կգրվի հետևյալը.

php'xx xax xaax !'

Օրինակ

Այս օրինակում որոնման կաղապարն ունի հետևյալ տեսքը. 'a' տառ տասը անգամ:

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

Արդյունքում փոփոխականի մեջ կգրվի հետևյալը.

php'aaa ! aaa'

Օրինակ

Այս օրինակում կոդի հեղինակը ցանկանում էր այսպիսի կաղապար. 'x' տառ, 'a' տառ երեք անգամ և ավելի քիչ, 'x' տառ, բայց, դժբախտաբար, սա - {,3} - չի աշխատում: Պետք է բացահայտ նշել.

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

Արդյունքում փոփոխականի մեջ կգրվի հետևյալը.

php'xx ! ! !'

Օրինակ

Զրոն նույնպես թույլատրելի է.

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

Արդյունքում փոփոխականի մեջ կգրվի հետևյալը.

php'! ! ! !'

Գործնական առաջադրանքներ

Задание 1

Տրված է տող.

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

Գրեք կանոնավոր արտահայտություն, որը կգտնի 'abba', 'abbba', 'abbbba' տողերը և միայն դրանք:

Задание 2

Տրված է տող.

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

Գրեք կանոնավոր արտահայտություն, որը կգտնի 'aba' տեսքի տողեր, որոնցում 'b' տառը հանդիպում է երեք անգամից քիչ (ներառյալ):

Задание 3

Տրված է տող.

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

Գրեք կանոնավոր արտահայտություն, որը կգտնի 'aba' տեսքի տողեր, որոնցում 'b' տառը հանդիպում է չորս անգամից ավելի (ներառյալ):