⊗pyPmRENPB 71 of 129 menu

Parentesi non catturanti nelle espressioni regolari di Python

Le parentesi ( ) svolgono due funzioni: raggruppare i caratteri e la funzione di cattura (capturing group). E cosa fare se è necessario raggruppare, ma non voler catturare? Per risolvere questo problema sono state introdotte le speciali parentesi non catturanti (non-capturing parentheses) (?: ) - raggruppano, ma non catturano in un gruppo.

Esempio

Nel seguente esempio, le prime parentesi ci servono per il raggruppamento, mentre le seconde - per la cattura. Tuttavia, entrambe le parentesi catturano i dati in un gruppo:

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

Di conseguenza, nei nostri gruppi ci sarà quanto segue:

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

Esempio

Modifichiamo in modo che la prima coppia di parentesi solo raggruppi, ma non catturi in un gruppo:

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

Di conseguenza, nel primo gruppo ci sarà il nostro numero:

print(res[1]) # visualizzerà '123'
Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta