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

ფრჩხილები ( ) ასრულებენ ორ ფუნქციას - სიმბოლოების დაჯგუფებას და ჯიბის ფუნქციას. და რა ვქნათ, თუ საჭიროა დაჯგუფება, მაგრამ ჯიბეში არ ჩაგდება? ასეთი პრობლემის გადასაჭრელად გამოგონილია სპეციალური არასამახსოვრებელი ფრჩხილები (?: ) - ისინი აჯგუფებენ, მაგრამ არ ათავსებენ ჯიბეში.

მაგალითი

შემდეგ მაგალითში პირველი ფრჩხილები გვჭირდება დაჯგუფებისთვის, ხოლო მეორე - ჯიბისთვის. თუმცა, ორივე ფრჩხილები ინახავს მონაცემებს ჯიბეში:

pythontxt = 'abab123'
res = re.search('(ab)+([1-9]+)', txt)

შედეგად ჩვენს ჯიბეებში იქნება შემდეგი:

pythonprint(res[0]) # გამოიტანს 'abab123'
print(res[1]) # გამოიტანს 'ab'
print(res[2]) # გამოიტანს '123'

მაგალითი

გავაკეთოთ ისე, რომ პირველმა ფრჩხილების წყვილმა მხოლოდ დაჯგუფება მოახდინოს, მაგრამ ჯიბეში არ ჩააგდოს:

pythontxt = 'abab123'
res = re.search('(?:ab)+([1-9]+)', txt)

შედეგად პირველ ჯიბეში იქნება ჩვენი რიცხვი:

pythonprint(res[1]) # გამოიტანს '123'