⊗pyPmRENPB 71 of 129 menu

Niezachowujące nawiasy w wyrażeniach regularnych Pythona

Nawiasy ( ) pełnią dwie funkcje - grupowanie znaków i funkcję kieszeni. A co zrobić, jeśli trzeba pogrupować, ale nie chcesz umieszczać w kieszeni? Aby rozwiązać ten problem, wymyślono specjalne niezachowujące nawiasy (?: ) - grupują, ale nie umieszczają w kieszeni.

Przykład

W następnym przykładzie pierwsze nawiasy są nam potrzebne do grupowania, a drugie - do kieszeni. Jednakże zarówno jedne, jak i drugie nawiasy zachowują dane do kieszeni:

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

W rezultacie w naszych kieszeniach będzie następująco:

print(res[0]) # wypisze 'abab123' print(res[1]) # wypisze 'ab' print(res[2]) # wypisze '123'

Przykład

Sprawmy, aby pierwsza para nawiasów tylko grupowała, ale nie umieszczała w kieszeni:

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

W rezultacie w pierwszej kieszeni będzie nasza liczba:

print(res[1]) # wypisze '123'
Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć