ფიგურული ფრჩხილები PHP-ის რეგულარულ გამოსახულებებში

ოპერატორები +, *, ? კარგები არიან, თუმცა მათი დახმარებით შეუძლებელია განსაზღვრო კონკრეტული რაოდენობის გამეორებები. ამ შემთხვევაში შენ დაგეხმარება ოპერატორი {}.

ის მუშაობს შემდეგნაირად: {5} - ხუთი გამეორება, {2,5} - მეორდება ორიდან ხუთამდე (ორივე ჩათვლით), {2,} - მეორდება ორჯერ და მეტჯერ.

მაგალითი

ამ მაგალითში ძიების შაბლონი ასე გამოიყურება: ასო 'x', ასო 'a' ერთხელ ან ორჯერ, ასო 'x':

php<?php
  $str = 'xx xax xaax xaaax';
  $res = preg_replace('#xa{1,2}x#', '!', $str);
?>

შედეგად ცვლადში ჩაიწერება შემდეგი:

php'xx ! ! xaaax'

მაგალითი

ამ მაგალითში ძიების შაბლონი ასე გამოიყურება: ასო 'x', ასო 'a' ორჯერ და მეტჯერ, ასო 'x':

php<?php
  $str = 'xx xax xaax xaaax';
  $res = preg_replace('#xa{2,}x#', '!', $str);
?>

შედეგად ცვლადში ჩაიწერება შემდეგი:

php'xx xax ! !'

მაგალითი

ამ მაგალითში ძიების შაბლონი ასე გამოიყურება: ასო 'x', ასო 'a' სამჯერ, ასო 'x':

php<?php
  $str = 'xx xax xaax xaaax';
  $res = preg_replace('#xa{3}x#', '!', $str);
?>

შედეგად ცვლადში ჩაიწერება შემდეგი:

php'xx xax xaax !'

მაგალითი

ამ მაგალითში ძიების შაბლონი ასე გამოიყურება: ასო 'a' ათჯერ:

php<?php
  $str = 'aaa aaaaaaaaaa aaa';
  $res = preg_replace('#a{10}#', '!', $str);
?>

შედეგად ცვლადში ჩაიწერება შემდეგი:

php'aaa ! aaa'

მაგალითი

ამ მაგალითში კოდის ავტორს სურდა შემდეგი შაბლონი: ასო 'x', ასო 'a' სამჯერ ან ნაკლებჯერ, ასო 'x', მაგრამ, სამწუხაროდ, ასეთი - {,3} - არ მუშაობს. საჭიროა მიუთითო ცალსახად:

php<?php
  $str = 'xx xax xaax xaaax';
  $res = preg_replace('#xa{1,3}x#', '!', $str);
?>

შედეგად ცვლადში ჩაიწერება შემდეგი:

php'xx ! ! !'

მაგალითი

ნულიც დასაშვებია:

php<?php
  $str = 'xx xax xaax xaaax';
  $res = preg_replace('#xa{0,3}x#', '!', $str);
?>

შედეგად ცვლადში ჩაიწერება შემდეგი:

php'! ! ! !'

პრაქტიკული ამოცანები

Задание 1

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

php<?php
  $str = 'aa aba abba abbba abbbba abbbbba';
?>

დაწერეთ რეგულარული გამოსახულება, რომელიც იპოვის სტრიქონებს 'abba', 'abbba', 'abbbba' და მხოლოდ მათ.

Задание 2

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

php<?php
  $str = 'aa aba abba abbba abbbba abbbbba';
?>

დაწერეთ რეგულარული გამოსახულება, რომელიც იპოვის 'aba' ტიპის სტრიქონებს, რომლებშიც 'b' გვხვდება სამჯერ ნაკლები (ჩათვლით).

Задание 3

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

php<?php
  $str = 'aa aba abba abbba abbbba abbbbba';
?>

დაწერეთ რეგულარული გამოსახულება, რომელიც იპოვის 'aba' ტიპის სტრიქონებს, რომლებშიც 'b' გვხვდება ოთხჯერ მეტი (ჩათვლით).