Նիշերի հավաքածուներ PHP-ի կանոնավոր արտահայտություններում
\d և \w նիշերի խմբերը շատ
ճկուն չեն: Նույնիսկ այնպիսի պարզ խնդիր,
ինչպիսին է գտնել բոլոր տառերը, բայց ոչ թվանշանները -
չի կարող լուծվել դրանց միջոցով: Նման խնդիրների համար
պետք է օգտագործել քառակուսի փակագծերը, որոնք ներկայացնում են
ԿԱՄ գործողությունը:
Քառակուսի փակագծերը փոխարինում են մեկ նիշին,
ներսում թվարկվածներից ցանկացածին: Օրինակ,
ահա այսպես՝ #x[abc]x# - մենք ասում ենք, որ
եզրերին պետք է կանգնած լինեն x տառերը, իսկ ներսում
- մեկ նիշ՝ կամ 'a', կամ 'b',
կամ 'c':
Քառակուսի փակագծերից հետո կարելի է գրել կրկնության օպերատորներ:
Օրինակ, ահա այսպես՝ #x[abc]+x#
- մենք ասում ենք, որ x-երի ներսում կարող է լինել
ցանկացած քանակի 'a', 'b'
և 'c' նիշեր - ցանկացած համադրությամբ:
Կարելի է ոչ միայն թվարկել նիշերը, այլև ստեղծել
նիշերի խմբեր՝ գրելով երկու նիշերի միջև դեպիս:
Օրինակ, ահա այսպես՝ #[a-d]#
- մենք ստանում ենք բոլոր նիշերը 'a'-ից
մինչև 'd':
Եկեք նայենք օրինակներին:
Օրինակ
Այս օրինակում որոնման ձևանմուշը այսպիսի տեսք ունի.
x-երի միջև 'a'-ից մինչև 'z'
ցանկացած տառ:
<?php
$str = 'xax xbx xcx x@x';
$res = preg_replace('#x[a-z]x#', '!', $str);
?>
Արդյունքում փոփոխականի մեջ կգրվի հետևյալը.
'! ! ! x@x'
Օրինակ
Այս օրինակում որոնման ձևանմուշը այսպիսի տեսք ունի.
x-երի միջև 'a'-ից մինչև 'k'
ցանկացած տառ:
<?php
$str = 'xax xbx xmx x@x';
$res = preg_replace('#x[a-k]x#', '!', $str);
?>
Արդյունքում փոփոխականի մեջ կգրվի հետևյալը.
'! ! xmx x@x'
Օրինակ
Այս օրինակում որոնման ձևանմուշը այսպիսի տեսք ունի.
x-երի միջև 'A'-ից մինչև 'Z'
ցանկացած տառ:
<?php
$str = 'xax xBx xcx x@x';
$res = preg_replace('#x[A-Z]x#', '!', $str);
?>
Արդյունքում փոփոխականի մեջ կգրվի հետևյալը.
'xax ! xcx x@x'
Օրինակ
Այս օրինակում որոնման ձևանմուշը այսպիսի տեսք ունի.
x-երի միջև 0-ից մինչև 9 ցանկացած թվանշան:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[0-9]x#', '!', $str);
?>
Արդյունքում փոփոխականի մեջ կգրվի հետևյալը.
'xax ! ! ! x@x'
Օրինակ
Այս օրինակում որոնման ձևանմուշը այսպիսի տեսք ունի.
x-երի միջև 3-ից մինչև 7 ցանկացած թվանշան:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[3-7]x#', '!', $str);
?>
Արդյունքում փոփոխականի մեջ կգրվի հետևյալը.
'xax x1x ! ! x@x'
Օրինակ
Այս օրինակում որոնման ձևանմուշը այսպիսի տեսք ունի.
x-երի միջև 'a'-ից մինչև 'z'
ցանկացած տառ կամ 1-ից մինչև 9 թվանշան:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[a-z1-9]x#', '!', $str);
?>
Արդյունքում փոփոխականի մեջ կգրվի հետևյալը.
'! ! ! ! x@x'
Օրինակ
Այս օրինակում որոնման ձևանմուշը այսպիսի տեսք ունի.
x-երի միջև 'a'-ից մինչև 'z'
ցանկացած տառ կամ 'A'-ից մինչև
'Z' տառ:
<?php
$str = 'xax xBx xcx x5x x@x';
$res = preg_replace('#x[a-zA-Z]x#', '!', $str);
?>
Արդյունքում փոփոխականի մեջ կգրվի հետևյալը.
'! ! ! x5x x@x'
Օրինակ
Այս օրինակում որոնման ձևանմուշը այսպիսի տեսք ունի.
x-երի միջև 'a'-ից մինչև 'z'
ցանկացած տառ կամ 1, 2 թվանշանները:
<?php
$str = 'xax xbx x1x x2x x3x';
$res = preg_replace('#x[a-z12]x#', '!', $str);
?>
Արդյունքում փոփոխականի մեջ կգրվի հետևյալը.
'! ! ! ! x3x'
Օրինակ
Այս օրինակում որոնման ձևանմուշը այսպիսի տեսք ունի.
x-երի միջև 'a'-ից մինչև 'z'
տառերը 1 և ավելի քանակով:
<?php
$str = 'xx xabesx xaadx x123x xa3x';
$res = preg_replace('#x[a-z]+x#', '!', $str);
?>
Արդյունքում փոփոխականի մեջ կգրվի հետևյալը.
'xx ! ! ! x123x xa3x'
Օրինակ
Եկեք անենք այնպես, որ տառերի քանակը կարող է լինել նաև զրո.
<?php
$str = 'xx xabesx xaadx x123x xa3x';
$res = preg_replace('#x[a-z]*x#', '!', $str);
?>
Արդյունքում փոփոխականի մեջ կգրվի հետևյալը.
'! ! ! x123x xa3x'
Գործնական առաջադրանքներ
Տրված է տողը.
<?php
$str = 'aba aea aca aza axa';
?>
Գրեք կանոնավոր արտահայտություն, որը կգտնի հետևյալ
համաձայն օրինակի. եզրերին կանգնած են 'a'
տառերը, իսկ նրանց միջև - 'b', 'e'
կամ 'x' տառը.
Տրված է տողը.
<?php
$str = 'a1a a3a a7a a9a aba';
?>
Գրեք կանոնավոր արտահայտություն, որը կգտնի հետևյալ
համաձայն օրինակի. եզրերին կանգնած են 'a'
տառերը, իսկ նրանց միջև - 3-ից մինչև 6
թվանշան.
Տրված է տողը.
<?php
$str = 'aba aea afa aha aga';
?>
Գրեք կանոնավոր արտահայտություն, որը կգտնի հետևյալ
համաձայն օրինակի. եզրերին կանգնած են 'a'
տառերը, իսկ նրանց միջև - a-ից մինչև g տառ.
Տրված է տողը.
<?php
$str = 'aba aea afa aha aga';
?>
Գրեք կանոնավոր արտահայտություն, որը կգտնի հետևյալ
համաձայն օրինակի. եզրերին կանգնած են 'a'
տառերը, իսկ նրանց միջև - a-ից մինչև f և j-ից մինչև z տառ.
Տրված է տողը.
<?php
$str = 'aAa aea aEa aJa a3a';
?>
Գրեք կանոնավոր արտահայտություն, որը կգտնի հետևյալ
համաձայն օրինակի. եզրերին կանգնած են 'a'
տառերը, իսկ նրանց միջև - a-ից մինչև f և A-ից մինչև D տառ.
Տրված է տողը.
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
Գրեք կանոնավոր արտահայտություն, որը կգտնի հետևյալ
համաձայն օրինակի. եզրերին կանգնած են 'a'
տառերը, իսկ նրանց միջև - լատինական փոքրատառերը,
չանդրադառնալով մնացածին.
Տրված է տողը.
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
Գրեք կանոնավոր արտահայտություն, որը կգտնի հետևյալ
համաձայն օրինակի. եզրերին կանգնած են 'a'
տառերը, իսկ նրանց միջև - լատինական փոքր և մեծատառերը,
չանդրադառնալով մնացածին.
Տրված է տողը.
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
Գրեք կանոնավոր արտահայտություն, որը կգտնի հետևյալ
համաձայն օրինակի. եզրերին կանգնած են 'a'
տառերը, իսկ նրանց միջև - լատինական փոքրատառերը
և թվանշանները, չանդրադառնալով մնացածին.