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