ფიგურული ფრჩხილები პითონის რეგულარულ გამოსახულებებში

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

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

მაგალითი

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

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)

print(res)

კოდის შესრულების შედეგი:

python'xx ! ! xaaax'

მაგალითი

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

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)

print(res)

კოდის შესრულების შედეგი:

python'xx xax ! !'

მაგალითი

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

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)

print(res)

კოდის შესრულების შედეგი:

python'xx xax xaax !'

მაგალითი

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

pythontxt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)

print(res)

კოდის შესრულების შედეგი:

python'aaa ! aaa'

მაგალითი

ამ მაგალითში არის ასეთი შაბლონი: ასო 'x', ასო 'a' სამჯერ და ნაკლებჯერ, ასო 'x'. იმისთვის, რომ მისი რეალიზება მოხდეს, ციფრის 3 წინ შეიძლება რიცხვი არ იყოს მითითებული, არამედ დასვით უბრალოდ მძიმე:

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{,3}x', '!', txt)

print(res)

კოდის შესრულების შედეგი:

python'! ! ! !'

მაგალითი

ნული 3-მდე ასევე დასაშვებია:

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{0,3}x', '!', txt)

print(res)

კოდის შესრულების შედეგი:

python'! ! ! !'

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

Задание 1

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

pythontxt = 'aa aba abba abbba abbbba abbbbba'

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

Задание 2

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

pythontxt = 'aa aba abba abbba abbbba abbbbba'

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

Задание 3

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

pythontxt = 'aa aba abba abbba abbbba abbbbba'

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