⊗pyPmRENPB 71 of 129 menu

Ikke-fangende parenteser i Python regex

Parenteser ( ) udfører to funktioner - gruppering af tegn og fangstfunktion. Men hvad gør man, hvis man skal gruppere, men ikke fange? For at løse dette problem er specielle ikke-fangende parenteser (?: ) opfundet - de grupperer, men fanger ikke.

Eksempel

I det følgende eksempel har vi brug for de første parenteser til gruppering, og de anden - til fangst. Dog fanger begge typer parenteser data:

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

Som et resultat vil der være følgende i vores fangstgrupper:

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

Eksempel

Lad os sikre, at det første par parenteser kun grupperer, men ikke fanger:

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

Som et resultat vil vores nummer være i den første fangstgruppe:

print(res[1]) # vil udskrive '123'
Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis