სიმბოლოების ნაკრები 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',
ხოლო მათ შორის - პატარა ლათინური ასოები
და ციფრები, არ შეეხო დანარჩენებს.