Python'da Düzenli İfadelerde Yakalamayan Parantezler

Parantezler ( ) iki işlevi yerine getirir - karakterleri gruplama ve yakalama grubu (capturing group) işlevi. Peki ya gruplama yapmanız gerekiyorsa ancak yakalama grubuna almak istemiyorsanız? Bu sorunu çözmek için özel yakalamayan parantezler (?: ) tasarlanmıştır - bunlar gruplama yapar, ancak yakalama grubuna almaz.

Örnek

Aşağıdaki örnekte, ilk parantezler gruplama için, ikinci parantezler ise yakalama grubu için gereklidir. Ancak, her iki parantez türü de verileri yakalama grubuna kaydeder:

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

Sonuç olarak, yakalama gruplarımızda şu veriler olacaktır:

pythonprint(res[0]) # 'abab123' yazdırır
print(res[1]) # 'ab' yazdırır
print(res[2]) # '123' yazdırır

Örnek

İlk parantez çiftinin sadece gruplama yapmasını, ancak yakalama grubuna almamasını sağlayalım:

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

Sonuç olarak, ilk yakalama grubunda sayımız olacaktır:

pythonprint(res[1]) # '123' yazdırır