PHP-ի ռեգուլյար արտահայտություններում «կամ» հրամանը
Այս դասում մենք կվերլուծենք
| հրամանը, որը ներկայացնում է
[] հրամանից ավելի հզոր
ԿԱՄ տարբերակ: Այս հրամանը թույլ է տալիս
բաժանել ռեգուլյար արտահայտությունը մի քանի մասերի:
Այդ դեպքում փնտրվողը կարող է համապատասխանել կամ ռեգուլյար արտահայտության
մի մասին, կամ մյուսին: Եկեք նայենք օրինակներով:
Օրինակ
Այս օրինակում որոնման կաղապարը հետևյալն է. երեք
'a' տառ կամ երեք 'b' տառ:
<?php
$str = 'aaa bbb abb';
$res = preg_replace('#a{3}|b{3}#', '!', $str);
?>
Արդյունքում փոփոխականի մեջ կգրանցվի հետևյալը.
'! ! abb'
Օրինակ
Այս օրինակում որոնման կաղապարը հետևյալն է. երեք
'a' տառ կամ 1 և ավելի
'b' տառ:
<?php
$str = 'aaa bbb bbbb bbbbb axx';
$res = preg_replace('#a{3}|b+#', '!', $str);
?>
Արդյունքում փոփոխականի մեջ կգրանցվի հետևյալը.
'! ! ! ! axx'
Օրինակ
Այս օրինակում որոնման կաղապարը հետևյալն է. մեկ կամ ավելի տառ կամ երեք թվանշան:
<?php
$str = 'a ab abc 1 12 123';
$res = preg_replace('#[a-z]+|\d{3}#', '!', $str);
?>
Արդյունքում փոփոխականի մեջ կգրանցվի հետևյալը.
'! ! ! 1 12 !'
Օրինակ
Ուղղահայաց գիծը կարող է բաժանել ռեգուլյար արտահայտությունը ոչ թե երկու մասի, այլ ցանկացած քանակի մասերի.
<?php
$str = 'aaa bbb ccc ddd';
$res = preg_replace('#a+|b+|c+#', '!', $str);
?>
Արդյունքում փոփոխականի մեջ կգրանցվի հետևյալը.
'! ! ! ddd'
Օրինակ
Եթե ուղղահայաց գիծը գտնվում է կլոր
փակագծերի ներսում, ապա 'կամ'-ն աշխատում է միայն
այդ փակագծերի ներսում: Որպես օրինակ եկեք գտնենք տողերը
հետևյալ կաղապարով. սկզբում կա
կամ 'a', կամ 'b' մեկ կամ ավելի
անգամ, իսկ հետո երկու 'x' տառ:
<?php
$str = 'axx bxx bbxx exx';
$res = preg_replace('#(a|b+)xx#', '!', $str);
?>
Արդյունքում փոփոխականի մեջ կգրանցվի հետևյալը.
'! ! ! exx'
Գործնական առաջադրանքներ
Տրված է տողը.
<?php
$str = 'aeeea aeea aea axa axxa axxxa';
?>
Գրեք ռեգուլյար արտահայտություն, որը կգտնի տողերը
հետևյալ կաղապարով. եզրերին կան 'a' տառեր,
իսկ նրանց միջև - կամ 'e' տառ ցանկացած
քանակով կամ 'x' տառ ցանկացած
քանակով.
Տրված է տողը.
<?php
$str = 'aeeea aeea aea axa axxa axxxa';
?>
Գրեք ռեգուլյար արտահայտություն, որը կգտնի տողերը
հետևյալ կաղապարով. եզրերին կան 'a' տառեր,
իսկ նրանց միջև - կամ 'e' տառ երկու անգամ
կամ 'x' տառ ցանկացած քանակով.