ფიგურული ფრჩხილები ჯავასკრიპტის რეგულარულ გამოსახულებებში

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

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

მაგალითი

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

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,2}x/g, '!');

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

javascript'xx ! ! xaaax'

მაგალითი

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

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{2,}x/g, '!');

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

javascript'xx xax ! !'

მაგალითი

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

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{3}x/g, '!');

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

javascript'xx xax xaax !'

მაგალითი

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

javascriptlet str = 'aaa aaaaaaaaaa aaa';
let res = str.replace(/a{10}/g, '!');

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

javascript'aaa ! aaa'

მაგალითი

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

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,3}x/g, '!');

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

javascript'xx ! ! !'

მაგალითი

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

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{0,3}x/g, '!');

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

javascript'! ! ! !'

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

Задание 1

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

javascriptlet str = 'aa aba abba abbba abbbba abbbbba';

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

Задание 2

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

javascriptlet str = 'aa aba abba abbba abbbba abbbbba';

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

Задание 3

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

javascriptlet str = 'aa aba abba abbba abbbba abbbbba';

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