ბრძანება 'ან' 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' ნებისმიერი რაოდენობით.