რეგულარული გამონათქვამები PHP-ში - შესავალი

რეგულარული გამონათქვამები არის ბრძანებები რთული ძიებისა და ჩანაცვლებისთვის. ისინი საშუალებას გაძლევთ გააკეთოთ ძალიან საინტერესო რამ, მაგრამ, სამწუხაროდ, საკმაოდ რთულია დასაუფლებლად.

არსებობს PHP-ის რამდენიმე ფუნქცია რეგულარულ გამონათქვამებთან მუშაობისთვის. ჩვენ გავეცნობით მათ მაგალითით preg_replace. ეს ფუნქცია პირველ პარამეტრად იღებს რა უნდა შეიცვალოს, მეორედ - რაზე უნდა შეიცვალოს, ხოლო მესამე პარამეტრად - სტრიქონს, რომელშიც საჭიროა ჩანაცვლება:

php<?php
  preg_replace(რა უნდა შეიცვალოს, რაზე, სტრიქონი);
?>

ამ შემთხვევაში, ჩვენი ფუნქცია პირველ პარამეტრად იღებს არა უბრალო სტრიქონს, არამედ რეგულარულ გამონათქვამს, რომელიც წარმოადგენს სტრიქონს ბრძანებების კომპლექტით, განთავსებული ჩარჩოს სიმბოლოების # შიგნით. ამ ჩარჩოებს ეწოდებათ შემზღუდველები რეგულარული გამონათქვამის.

შემზღუდველების შემდეგ შეგიძლიათ დაწეროთ მოდიფიკატორები - ბრძანებები, რომლებიც ცვლის რეგულარული გამონათქვამის ზოგად თვისებებს.

თავად რეგულარული გამონათქვამები შედგება ორი ტიპის სიმბოლოსგან: მათგან, რომლებიც აღნიშნავენ თავის თავს და სიმბოლო-ბრძანებებისგან, რომლებსაც ეწოდებათ სპეციალური სიმბოლოები.

ასოები და ციფრები აღნიშნავენ თავის თავს. შემდეგ მაგალითში ჩვენ რეგულარული გამონათქვამის საშუალებით შევცვლით ასო 'a'-ს '!'-ზე:

php<?php
  preg_replace('#a#', '!', 'bab'); // დააბრუნებს 'b!b'
?>

წერტილი კი სპეციალური სიმბოლოა და აღნიშნავს ნებისმიერ სიმბოლოს. შემდეგ მაგალითში ჩვენ ვიპოვით სტრიქონს შემდეგი შაბლონით: ასო 'x', შემდეგ ნებისმიერი სიმბოლო, შემდეგ კვლავ ასო 'x':

php<?php
  preg_replace('#x.x#', '!', 'xax eee'); // დააბრუნებს '! eee'
?>
Задание 1

მოცემულია სტრიქონი:

php<?php
  $str = 'ahb acb aeb aeeb adcb axeb';
?>

დაწერეთ რეგულარული გამონათქვამი, რომელიც იპოვის სტრიქონებს 'ahb', 'acb', 'aeb' შაბლონის მიხედვით: ასო 'a', ნებისმიერი სიმბოლო, ასო 'b'.

Задание 2

მოცემულია სტრიქონი:

php<?php
  $str = 'ahb acb aeb aeeb adcb axeb';
?>

დაწერეთ რეგულარული გამონათქვამი, რომელიც იპოვის სტრიქონებს 'aeeb', 'adcb', 'axeb' შაბლონის მიხედვით: ასო 'a', ნებისმიერი ორი სიმბოლო, ასო 'b'.