ფიგურული ფრჩხილები PHP-ის რეგულარულ გამოსახულებებში
ოპერატორები +, *, ? კარგები არიან,
თუმცა მათი დახმარებით შეუძლებელია განსაზღვრო კონკრეტული
რაოდენობის გამეორებები. ამ შემთხვევაში შენ დაგეხმარება
ოპერატორი {}.
ის მუშაობს შემდეგნაირად: {5}
- ხუთი გამეორება, {2,5} - მეორდება
ორიდან ხუთამდე (ორივე ჩათვლით), {2,}
- მეორდება ორჯერ და მეტჯერ.
მაგალითი
ამ მაგალითში ძიების შაბლონი ასე გამოიყურება:
ასო 'x', ასო 'a' ერთხელ
ან ორჯერ, ასო 'x':
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{1,2}x#', '!', $str);
?>
შედეგად ცვლადში ჩაიწერება შემდეგი:
'xx ! ! xaaax'
მაგალითი
ამ მაგალითში ძიების შაბლონი ასე გამოიყურება:
ასო 'x', ასო 'a' ორჯერ
და მეტჯერ, ასო 'x':
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{2,}x#', '!', $str);
?>
შედეგად ცვლადში ჩაიწერება შემდეგი:
'xx xax ! !'
მაგალითი
ამ მაგალითში ძიების შაბლონი ასე გამოიყურება:
ასო 'x', ასო 'a' სამჯერ,
ასო 'x':
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{3}x#', '!', $str);
?>
შედეგად ცვლადში ჩაიწერება შემდეგი:
'xx xax xaax !'
მაგალითი
ამ მაგალითში ძიების შაბლონი ასე გამოიყურება:
ასო 'a' ათჯერ:
<?php
$str = 'aaa aaaaaaaaaa aaa';
$res = preg_replace('#a{10}#', '!', $str);
?>
შედეგად ცვლადში ჩაიწერება შემდეგი:
'aaa ! aaa'
მაგალითი
ამ მაგალითში კოდის ავტორს სურდა შემდეგი შაბლონი:
ასო 'x', ასო 'a' სამჯერ
ან ნაკლებჯერ, ასო 'x',
მაგრამ, სამწუხაროდ, ასეთი - {,3} -
არ მუშაობს. საჭიროა მიუთითო ცალსახად:
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{1,3}x#', '!', $str);
?>
შედეგად ცვლადში ჩაიწერება შემდეგი:
'xx ! ! !'
მაგალითი
ნულიც დასაშვებია:
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{0,3}x#', '!', $str);
?>
შედეგად ცვლადში ჩაიწერება შემდეგი:
'! ! ! !'
პრაქტიკული ამოცანები
მოცემულია სტრიქონი:
<?php
$str = 'aa aba abba abbba abbbba abbbbba';
?>
დაწერეთ რეგულარული გამოსახულება, რომელიც იპოვის
სტრიქონებს 'abba', 'abbba', 'abbbba'
და მხოლოდ მათ.
მოცემულია სტრიქონი:
<?php
$str = 'aa aba abba abbba abbbba abbbbba';
?>
დაწერეთ რეგულარული გამოსახულება, რომელიც იპოვის
'aba' ტიპის სტრიქონებს, რომლებშიც 'b' გვხვდება
სამჯერ ნაკლები (ჩათვლით).
მოცემულია სტრიქონი:
<?php
$str = 'aa aba abba abbba abbbba abbbbba';
?>
დაწერეთ რეგულარული გამოსახულება, რომელიც იპოვის
'aba' ტიპის სტრიქონებს, რომლებშიც 'b' გვხვდება
ოთხჯერ მეტი (ჩათვლით).