სიმბოლოების გამეორების ოპერატორები
ხშირად ჩნდება სიტუაციები, როდესაც გვსურს მივუთითოთ,
რომ სიმბოლო მეორდება გარკვეული რაოდენობის ნაკერი.
თუ ვიცით გამეორების ზუსტი რიცხვი,
მაშინ შეგვიძლია უბრალოდ დავწეროთ ის რამდენჯერმე
- /aaaa/. მაგრამ რა ვქნათ, თუ გვინდა
ვთქვათ ასეთი რამ: გავიმეოროთ ერთხელ ან მეტჯერ?
ამისთვის არსებობს გამეორების ოპერატორები (კვანტიფიკატორები):
პლუსი + (ერთი ან მეტჯერ),
ვარსკვლავი * (ნული ან მეტჯერ) და
კითხვის ნიშანი ? (ნული ან ერთხელ). ეს
ოპერატორები მოქმედებენ იმ სიმბოლოზე, რომელიც
მათ წინ დგას.
მოდით შევხედოთ ამ ოპერატორების მუშაობას მაგალითებზე.
მაგალითი
ვიპოვოთ ყველა ქვასტრიქონი შაბლონის მიხედვით ასო
'x', ასო 'a' ერთი ან მეტჯერ,
ასო 'x':
let str = 'xx xax xaax xaaax xbx';
let res = str.replace(/xa+x/g, '!');
შედეგად ცვლადში ჩაიწერება შემდეგი:
'xx ! ! ! xbx'
მაგალითი
ვიპოვოთ ყველა ქვასტრიქონი შაბლონის მიხედვით ასო
'x', ასო 'a' ნული ან მეტჯერ,
ასო 'x':
let str = 'xx xax xaax xaaax xbx'
let res = str.replace(/xa*x/g, '!');
შედეგად ცვლადში ჩაიწერება შემდეგი:
'! ! ! ! xbx'
მაგალითი
ვიპოვოთ ყველა ქვასტრიქონი შაბლონის მიხედვით ასო
'x', ასო 'a' ნული ან ერთხელ,
ასო 'x':
let str = 'xx xax xaax xbx';
let res = str.replace(/xa?x/g, '!');
შედეგად ცვლადში ჩაიწერება შემდეგი:
'! ! xaax xbx'
პრაქტიკული ამოცანები
მოცემულია სტრიქონი:
let str = 'aa aba abba abbba abca abea';
დაწერეთ რეგულარული გამოსახულება, რომელიც იპოვის სტრიქონებს
'aba', 'abba', 'abbba'
შაბლონის მიხედვით: ასო 'a', ასო 'b'
ნებისმიერი რაოდენობით, ასო 'a'.
მოცემულია სტრიქონი:
let str = 'aa aba abba abbba abca abea';
დაწერეთ რეგულარული გამოსახულება, რომელიც იპოვის სტრიქონებს
'aa', 'aba', 'abba',
'abbba' შაბლონის მიხედვით: ასო 'a',
ასო 'b' ნებისმიერი რაოდენობით (
ერთის ჩათვლით არაერთხელ), ასო 'a'.
მოცემულია სტრიქონი:
let str = 'aa aba abba abbba abca abea';
დაწერეთ რეგულარული გამოსახულება, რომელიც იპოვის სტრიქონებს
'aa', 'aba' შაბლონის მიხედვით: ასო
'a', ასო 'b' ერთხელ ან
არაერთხელ, ასო 'a'.
მოცემულია სტრიქონი:
let str = 'aa aba abba abbba abca abea';
დაწერეთ რეგულარული გამოსახულება, რომელიც იპოვის სტრიქონებს
'aa', 'aba', 'abba',
'abbba', without capturing 'abca'
and 'abea'.