PHP-ի ռեգուլյար արտահայտություններում «կամ» հրամանը

Այս դասում մենք կվերլուծենք | հրամանը, որը ներկայացնում է [] հրամանից ավելի հզոր ԿԱՄ տարբերակ: Այս հրամանը թույլ է տալիս բաժանել ռեգուլյար արտահայտությունը մի քանի մասերի: Այդ դեպքում փնտրվողը կարող է համապատասխանել կամ ռեգուլյար արտահայտության մի մասին, կամ մյուսին: Եկեք նայենք օրինակներով:

Օրինակ

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

php<?php
  $str = 'aaa bbb abb';
  $res = preg_replace('#a{3}|b{3}#', '!', $str);
?>

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

php'! ! abb'

Օրինակ

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

php<?php
  $str = 'aaa bbb bbbb bbbbb axx';
  $res = preg_replace('#a{3}|b+#', '!', $str);
?>

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

php'! ! ! ! axx'

Օրինակ

Այս օրինակում որոնման կաղապարը հետևյալն է. մեկ կամ ավելի տառ կամ երեք թվանշան:

php<?php
  $str = 'a ab abc 1 12 123';
  $res = preg_replace('#[a-z]+|\d{3}#', '!', $str);
?>

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

php'! ! ! 1 12 !'

Օրինակ

Ուղղահայաց գիծը կարող է բաժանել ռեգուլյար արտահայտությունը ոչ թե երկու մասի, այլ ցանկացած քանակի մասերի.

php<?php
  $str = 'aaa bbb ccc ddd';
  $res = preg_replace('#a+|b+|c+#', '!', $str);
?>

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

php'! ! ! ddd'

Օրինակ

Եթե ուղղահայաց գիծը գտնվում է կլոր փակագծերի ներսում, ապա 'կամ'-ն աշխատում է միայն այդ փակագծերի ներսում: Որպես օրինակ եկեք գտնենք տողերը հետևյալ կաղապարով. սկզբում կա կամ 'a', կամ 'b' մեկ կամ ավելի անգամ, իսկ հետո երկու 'x' տառ:

php<?php
  $str = 'axx bxx bbxx exx';
  $res = preg_replace('#(a|b+)xx#', '!', $str);
?>

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

php'! ! ! exx'

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

Задание 1

Տրված է տողը.

php<?php
  $str = 'aeeea aeea aea axa axxa axxxa';
?>

Գրեք ռեգուլյար արտահայտություն, որը կգտնի տողերը հետևյալ կաղապարով. եզրերին կան 'a' տառեր, իսկ նրանց միջև - կամ 'e' տառ ցանկացած քանակով կամ 'x' տառ ցանկացած քանակով.

Задание 2

Տրված է տողը.

php<?php
  $str = 'aeeea aeea aea axa axxa axxxa';
?>

Գրեք ռեգուլյար արտահայտություն, որը կգտնի տողերը հետևյալ կաղապարով. եզրերին կան 'a' տառեր, իսկ նրանց միջև - կամ 'e' տառ երկու անգամ կամ 'x' տառ ցանկացած քանակով.