სიმბოლოთა ჯგუფები 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';
?>
დაწერეთ რეგულარული გამოსახულება, რომელიც შეცვლის ყველა სივრცეს
'!'-ით.