⊗pyPmRENPB 71 of 129 menu

Parenthèses non capturantes dans les regex Python

Les parenthèses ( ) remplissent deux fonctions - le regroupement de caractères et la fonction de groupe de capture. Mais que faire si vous avez besoin de regrouper, sans créez un groupe de capture ? Pour résoudre ce problème, des parenthèses non capturantes spéciales (?: ) ont été inventées - elles regroupent, mais ne créent pas de groupe de capture.

Exemple

Dans l'exemple suivant, les premières parenthèses nous sont nécessaires pour le regroupement, et les secondes - pour le groupe de capture. Cependant, les deux types de parenthèses sauvegardent les données dans un groupe de capture :

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

En conséquence, nos groupes de capture contiendront les éléments suivants :

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

Exemple

Faisons en sorte que la première paire de parenthèses seulement regroupe, sans créer de groupe de capture :

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

En conséquence, notre nombre sera dans le premier groupe de capture :

print(res[1]) # affichera '123'
Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser