⊗pyPmRENPB 71 of 129 menu

Μη-αποθηκευτικές παρενθέσεις στις κανονικές εκφράσεις της Python

Οι παρενθέσεις ( ) εκτελούν δύο λειτουργίες - ομαδοποίηση χαρακτήρων και τη λειτουργία της "θύρας" (capturing group). Και τι κάνουμε αν χρειάζεται να ομαδοποιήσουμε, αλλά να μην το βάλουμε στην "θύρα"; Για την επίλυση αυτού του προβλήματος έχουν σχεδιαστεί ειδικές μη-αποθηκευτικές παρενθέσεις (?: ) - ομαδοποιούν, αλλά δεν τοποθετούν στην "θύρα".

Παράδειγμα

Στο επόμενο παράδειγμα, οι πρώτες παρενθέσεις χρειαζόμαστε για ομαδοποίηση, και οι δεύτερες - για "θύρα". Ωστόσο, και οι δύο παρενθέσεις αποθηκεύουν δεδομένα στην "θύρα":

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

Σαν αποτέλεσμα, στις "θύρες" μας θα υπάρχουν τα εξής:

print(res[0]) # θα εμφανίσει 'abab123' print(res[1]) # θα εμφανίσει 'ab' print(res[2]) # θα εμφανίσει '123'

Παράδειγμα

Ας κάνουμε έτσι ώστε το πρώτο ζευγάρι παρενθέσεων να ομαδοποιεί μόνο, αλλά να μην τοποθετεί στην "θύρα":

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

Σαν αποτέλεσμα, στην πρώτη "θύρα" θα είναι ο αριθμός μας:

print(res[1]) # θα εμφανίσει '123'
Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη