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