⊗pyPmRENPB 71 of 129 menu

Icke-fångande parenteser i Pythons reguljära uttryck

Parenteser ( ) har två funktioner - gruppering av tecken och funktionen att fånga (capture group). Men vad gör man om man behöver gruppera, men inte fånga? För att lösa detta problem har speciella icke-fångande parenteser (?: ) skapats - de grupperar, men fångar inte.

Exempel

I följande exempel behöver vi den första parentesen för gruppering, och den andra - för att fånga. Men båda parenteserna fångar data:

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

Som ett resultat kommer våra fångargrupper att innehålla följande:

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

Exempel

Låt oss se till att den första parentesen bara grupperar, men inte fångar:

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

Som ett resultat kommer vår siffra att finnas i den första fångargruppen:

print(res[1]) # skriver ut '123'
Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa