⊗pyPmRENPB 71 of 129 menu

Nezachytávajúce zátvorky v regulárnych výrazoch Python

Zátvorky ( ) plnia dve funkcie - zoskupovanie znakov a funkciu zachytenia (capture group). A čo robiť, ak je potrebné zoskupiť, ale nechceme zachytiť? Na vyriešenie tohto problému boli vytvorené špeciálne nezachytávajúce zátvorky (?: ) - tie zoskupujú, ale nezachytávajú.

Príklad

V nasledujúcom príklade potrebujeme prvé zátvorky pre zoskupenie a druhé - pre zachytenie. Avšak, oboje zátvorky zachytávajú dáta:

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

V dôsledku budeme mať v našich zachytených skupinách nasledovné:

print(res[0]) # vypíše 'abab123' print(res[1]) # vypíše 'ab' print(res[2]) # vypíše '123'

Príklad

Upravme to tak, aby prvá para zátvoriek iba zoskupovala, ale nezachytávala:

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

V dôsledku bude v prvej zachytávanej skupine naše číslo:

print(res[1]) # vypíše '123'
Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť