⊗pyPmREInr 33 of 129 menu

Εισαγωγή στις κανονικές εκφράσεις στην Python

Οι κανονικές εκφράσεις είναι εντολές για σύνθετη αναζήτηση και αντικατάσταση (ή απλά αναζήτηση). Επιτρέπουν να κάνετε πολύ ενδιαφέροντα πράγματα, αλλά, δυστυχώς, είναι αρκετά δύσκολες στην εκμάθηση.

Για να ξεκινήσετε να εργάζεστε με κανονικές εκφράσεις στην Python, πρέπει να εισάγουμε ένα ειδικό module re:

import re

Το module re περιλαμβάνει μεθόδους, που προορίζονται για εργασία με κανονικές εκφράσεις. Μια κανονική έκφραση αντιπροσωπεύει ένα σύνολο εντολών και αποτελείται από δύο τύπους χαρακτήρων: από αυτούς που συμβολίζουν τον εαυτό τους και από χαρακτήρες-εντολές, που ονομάζονται ειδικοί χαρακτήρες.

Η γνωριμία με τις κανονικές εκφράσεις είναι καλύτερα να ξεκινήσει με το παράδειγμα της μεθόδου sub, η οποία χρησιμοποιείται για αντικαταστάσεις σε μια συμβολοσειρά. Στην πρώτη παράμετρο η μέθοδος δέχεται τι να αλλάξει, στη δεύτερη - σε τι να αλλάξει. Στην τρίτη παράμετρο ορίζουμε τη συμβολοσειρά, στην οποία πρέπει να γίνει αντικατάσταση. Στην τέταρτη προαιρετική παράμετρο ορίζουμε τον αριθμό των αντικαταστάσεων. Η πιο απλή αντικατάσταση με τη βοήθεια αυτής της μεθόδου θα μοιάζει έτσι:

res = re.sub('a', '!', 'bab') print(res) # θα εκτυπώσει 'b!b'

Όπως παρατηρήσατε, στην κανονική έκφραση τα γράμματα συμβολίζουν τον εαυτό τους. Το ίδιο ισχύει και για τα ψηφία. Ας αντικαταστήσουμε το ψηφίο 2 με !:

res = re.sub('2', '!', '12abc3') print(res) # θα εκτυπώσει '1!abc3'

Η τελεία όμως είναι ειδικός χαρακτήρας και συμβολίζει οποιονδήποτε χαρακτήρα. Στο επόμενο παράδειγμα ας βρούμε μια υποσυμβολοσειρά με βάση αυτό το μοτίβο: γράμμα 'x', μετά οποιοσδήποτε χαρακτήρας, μετά πάλι γράμμα 'x':

res = re.sub('x.x', '!', 'xax eee') print(res) # θα εκτυπώσει '! eee'

Δίνεται μια συμβολοσειρά:

txt = 'ahb acb aeb aeeb adcb axeb'

Γράψτε μια κανονική έκφραση, που θα βρει τις συμβολοσειρές 'ahb', 'acb', 'aeb' με βάση το μοτίβο: γράμμα 'a', οποιοσδήποτε χαρακτήρας, γράμμα 'b'.

Δίνεται μια συμβολοσειρά:

txt = 'aba aca aea abba adca abea'

Γράψτε μια κανονική έκφραση, που θα βρει τις συμβολοσειρές 'abba', 'adca', 'abea' με βάση το μοτίβο: γράμμα 'a', 2 οποιοιδήποτε χαρακτήρες, γράμμα 'a'.

Δίνεται μια συμβολοσειρά:

txt = 'aba aca aea abba adca abea'

Γράψτε μια κανονική έκφραση, που θα βρει τις συμβολοσειρές 'abba' και 'abea', χωρίς να συμπεριλάβει 'adca'.

Ελληνικά
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 για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη