არასამახსოვრებელი ფრჩხილები პითონის რეგულარულ გამოსახულებებში
ფრჩხილები ( ) ასრულებენ ორ ფუნქციას -
სიმბოლოების დაჯგუფებას და ჯიბის ფუნქციას. და
რა ვქნათ, თუ საჭიროა დაჯგუფება, მაგრამ
ჯიბეში არ ჩაგდება? ასეთი
პრობლემის გადასაჭრელად გამოგონილია სპეციალური არასამახსოვრებელი
ფრჩხილები (?: ) - ისინი აჯგუფებენ,
მაგრამ არ ათავსებენ ჯიბეში.
მაგალითი
შემდეგ მაგალითში პირველი ფრჩხილები გვჭირდება დაჯგუფებისთვის, ხოლო მეორე - ჯიბისთვის. თუმცა, ორივე ფრჩხილები ინახავს მონაცემებს ჯიბეში:
txt = 'abab123'
res = re.search('(ab)+([1-9]+)', txt)
შედეგად ჩვენს ჯიბეებში იქნება შემდეგი:
print(res[0]) # გამოიტანს 'abab123'
print(res[1]) # გამოიტანს 'ab'
print(res[2]) # გამოიტანს '123'
მაგალითი
გავაკეთოთ ისე, რომ პირველმა ფრჩხილების წყვილმა მხოლოდ დაჯგუფება მოახდინოს, მაგრამ ჯიბეში არ ჩააგდოს:
txt = 'abab123'
res = re.search('(?:ab)+([1-9]+)', txt)
შედეგად პირველ ჯიბეში იქნება ჩვენი რიცხვი:
print(res[1]) # გამოიტანს '123'