Սիմվոլների խմբերը PHP-ի ռեգուլյար արտահայտություններում
Գոյություն ունեն հատուկ հրամաններ, որոնք թույլ են տալիս
անմիջապես ընտրել սիմվոլների ամբողջ խմբեր: \d հրամանը
նշանակում է 0-ից 9 թվանշան:
\w հրամանը նշանակում է թվանշան, լատինական
տառ կամ ընդգծման նշան: \s հրամանը
նշանակում է բացատ կամ բացատային սիմվոլ:
բացատ, տողի տեղափոխում, տաբուլյացիա: Կարելի է
հրամանի արժեքը շրջել՝ գրելով մեծ տառ.
օրինակ, եթե \d - թվանշան է,
ապա \D - ոչ թվանշան:
Օրինակ
Եկեք գտնենք բոլոր թվանշանները:
<?php
$str = '1 12 123';
$res = preg_replace('#\d#', '!', $str);
?>
Արդյունքում փոփոխականի մեջ կգրվի հետևյալը.
'! !! !!!'
Օրինակ
Կրկնության օպերատորները հրաման-խմբերը համարում են
մի ամբողջություն, այսինքն՝ խմբավորող փակագծեր
անհրաժեշտ չեն: Հաջորդ օրինակում որոնման կաղապարը
այսպիսի տեսք ունի. 0-ից 9 թվանշան
մեկ կամ ավելի անգամ:
<?php
$str = '1 12 123 abc @@@';
$res = preg_replace('#\d+#', '!', $str);
?>
Արդյունքում փոփոխականի մեջ կգրվի հետևյալը.
'! ! ! abc @@@'
Օրինակ
Հաջորդ օրինակում որոնման կաղապարը այսպիսի տեսք ունի.
ցանկացած բան մեկ կամ ավելի անգամ,
բայց ոչ 0-ից 9 թվանշան:
<?php
$str = '123abc3@@';
$res = preg_replace('#\D+#', '!', $str);
?>
Արդյունքում փոփոխականի մեջ կգրվի հետևյալը.
'123!3!'
Օրինակ
Այս օրինակում որոնման կաղապարը այսպիսի տեսք ունի. բացատային սիմվոլ մեկ անգամ:
<?php
$str = '1 12 123 abc @@@';
$res = preg_replace('#\s#', '!', $str);
?>
Արդյունքում փոփոխականի մեջ կգրվի հետևյալը.
'1!12!123!abc!@@@'
Օրինակ
Այս օրինակում որոնման կաղապարը այսպիսի տեսք ունի.
ՈՉ բացատային սիմվոլ մեկ կամ ավելի անգամ.
Բոլոր ենթատողերը, որոնք բաժանված են բացատներով, կփոխարինվեն
'!'-ով:
<?php
$str = '1 12 123 abc @@@';
$res = preg_replace('#\S+#', '!', $str);
?>
Արդյունքում փոփոխականի մեջ կգրվի հետևյալը.
'! ! ! ! !'
Օրինակ
Այս օրինակում որոնման կաղապարը այսպիսի տեսք ունի.
թվանշան կամ տառ մեկ կամ ավելի անգամ.
Թվանշաններից և տառերից բաղկացած բոլոր ենթատողերը
կփոխարինվեն '!'-ով.
<?php
$str = '1 12 123a Abc @@@';
$res = preg_replace('#\w+#', '!', $str);
?>
Արդյունքում փոփոխականի մեջ կգրվի հետևյալը.
'! ! ! ! @@@'
Օրինակ
Այս օրինակում որոնման կաղապարը այսպիսի տեսք ունի.
ՈՉ թվանշան և ՈՉ տառ մեկ կամ ավելի անգամ.
Մեր դեպքում այս սահմանմանը համապատասխանում է
'@@@'-ը և բոլոր բացատները (դրանք նույնպես
ոչ թվանշան են և ոչ տառ): Ուշադրություն դարձրեք
այն բանին, որ վերջում մեկ '!' կա - դրա
մեջ վերածվել է ' @@@' տողը -
դիմացի բացատով.
$str = '1 12 123 Abc @@@';
$res = preg_replace('#\W+#', '!', $str);
Արդյունքում փոփոխականի մեջ կգրվի հետևյալը.
'1!12!123!Abc!'
Գործնական առաջադրանքներ
Տրված է տող.
<?php
$str = 'a1a a2a a3a a4a a5a aba aca';
?>
Գրեք ռեգուլյար արտահայտություն, որը կգտնի տողերը,
որոնցում կողքերում կանգնած են 'a' տառերը,
իսկ նրանց միջև մեկ թվանշան.
Տրված է տող.
<?php
$str = 'a1a a22a a333a a4444a a55555a aba aca';
?>
Գրեք ռեգուլյար արտահայտություն, որը կգտնի տողերը,
որոնցում կողքերում կանգնած են 'a' տառերը,
իսկ նրանց միջև ցանկացած քանակի թվանշաններ.
Տրված է տող.
<?php
$str = 'aa a1a a22a a333a a4444a a55555a aba aca';
?>
Գրեք ռեգուլյար արտահայտություն, որը կգտնի տողերը,
որոնցում կողքերում կանգնած են 'a' տառերը,
իսկ նրանց միջև ցանկացած քանակի թվանշաններ (ներառյալ
նաև զրո թվանշան, այսինքն՝ 'aa' տողը).
Տրված է տող.
<?php
$str = 'avb a1b a2b a3b a4b a5b abb acb';
?>
Գրեք ռեգուլյար արտահայտություն, որը կգտնի հետևյալ
տեսքի տողերը. կողքերում կանգնած են 'a'
և 'b' տառերը, իսկ նրանց միջև - ոչ
թիվ.
Տրված է տող.
<?php
$str = 'ave a#b a2b a$b a4b a5b a-b acb';
?>
Գրեք ռեգուլյար արտահայտություն, որը կգտնի հետևյալ
տեսքի տողերը. կողքերում կանգնած են 'a'
և 'b' տառերը, իսկ նրանց միջև - ոչ
տառ և ոչ թվանշան.
Տրված է տող.
<?php
$str = 'ave a#a a2a a$a a4a a5a a-a aca';
?>
Գրեք ռեգուլյար արտահայտություն, որը բոլոր բացատները
կփոխարինի '!'-ով.