Μετάβαση στο κύριο περιεχόμενο
Ενδιάμεση Python2026-07-31 · 11 λεπτά ανάγνωσης

Python Regex Explained (2026)

Το Regex είναι το πιο τρομακτικό χαρακτηριστικό της Python. Δεν είναι τόσο δύσκολο — αλλά το 80% των σεμιναρίων φορτώνουν εκ των προτέρων τη θεωρία (\d, \w, άπληστοι εναντίον τεμπέλης) πριν σας δείξουν ένα μεμονωμένο μοτίβο που θα χρησιμοποιούσατε πραγματικά σε πραγματικό κώδικα. Αυτό το σεμινάριο ανατρέπει αυτό.

Θα καλύψουμε: τα βασικά της ενότητας «re», τα πέντε μοτίβα που καλύπτουν το 90% της πραγματικής εργασίας, όταν το «re.compile» βοηθά πραγματικά, ονομάζουμε ομάδες έναντι αριθμημένων και τις τέσσερις περιπτώσεις όπου το regex είναι το ΛΑΘΟΣ εργαλείο.

Η ενότητα σε 60 δευτερόλεπτα

Όλα ζουν στη μονάδα stdlib re. Τρεις λειτουργίες καλύπτουν τις περισσότερες ανάγκες:

▶ PYTHONeditable · runs in your browser

Κανόνας: χρησιμοποιήστε «re.search» όταν έχετε αμφιβολίες. Το "re.match" ελέγχει μόνο την έναρξη. ξεχνώντας ότι οδηγεί στο "το regex μου δεν ταιριάζει!" 30 λεπτά χαμένα.

Ακατέργαστες συμβολοσειρές — να τις χρησιμοποιείτε πάντα

Το πρόθεμα r..." απενεργοποιεί την ανάστροφη κάθετο. Χωρίς αυτό, το "\d" γίνεται ""\\d" στην Python, το οποίο η μηχανή regex βλέπει ως \d — το ίδιο αποτέλεσμα, αλλά μόνο τυχαία και μόνο για το \d. Το "\n" σε ένα regex είναι μια νέα γραμμή, όχι οι δύο χαρακτήρες + n`.

▶ PYTHONeditable · runs in your browser

Μυϊκή μνήμη: κάθε κυριολεκτική regex ξεκινά με «r». Χωρίς εξαιρέσεις.

Τα 5 μοτίβα που καλύπτουν το 90% της πραγματικής εργασίας

1. Εξαγωγή όλων των ακεραίων από το κείμενο

▶ PYTHONeditable · runs in your browser

Σημείωση Το "199.99" χωρίζεται σε "["199", "99"]" — Το "\d+" δεν διασχίζει την τελεία. Χρησιμοποιήστε το r"\d+(?:\.\d+)?" για προαιρετικά δεκαδικά ψηφία:

▶ PYTHONeditable · runs in your browser

2. Κανονικοποίηση κενού διαστήματος

▶ PYTHONeditable · runs in your browser

Το \s+ αντιστοιχεί σε οποιαδήποτε σειρά διαστημάτων / καρτελών / νέων γραμμών. Αντικαταστήστε με ένα ενιαίο κενό, απογυμνώστε τις άκρες. Αυτή είναι η απάντηση της Python στο «sed -E 's/[[:space:]]+/ /g».

3. Εξαγάγετε το όνομα κεντρικού υπολογιστή από μια διεύθυνση URL

▶ PYTHONeditable · runs in your browser

Οι παρενθέσεις δημιουργούν μια ομάδα λήψης. Το .group(1) επιστρέφει το περιεχόμενό του. [^/:]+ = "ένας ή περισσότεροι χαρακτήρες που δεν είναι / ή :" — σταματά στο διαχωριστικό θύρας Ή στη διαδρομή.

Για ανάλυση διεύθυνσης URL παραγωγής, χρησιμοποιήστε το «urllib.parse.urlparse» (χειρίζεται περιπτώσεις άκρων όπως στοιχεία χρήστη + IPv6). Το Regex είναι για γρήγορη και βρώμικη εξαγωγή.

4. Χαλαρή επικύρωση email

ΔΕΝ υπάρχει regex που να επικυρώνει πλήρως τα email ανά RFC 5322. Όποιος σας πει το αντίθετο πουλάει κάτι. Αλλά αυτό πιάνει το 99% των πραγματικών διευθύνσεων χωρίς να απορρίπτει ψευδώς καλές:

▶ PYTHONeditable · runs in your browser

Οι άγκυρες (^ και $) επιβάλλουν ταίριασμα πλήρους χορδής. Χωρίς αυτά, το "foo@bar"" μέσα σε μια μεγαλύτερη πρόταση θα ταίριαζε.

Παραγωγή: αποστολή email επιβεβαίωσης. Αυτός είναι ο ΜΟΝΟΣ αξιόπιστος επικυρωτής email.

5. Ονομασμένες ομάδες λήψης

Οι αριθμημένες ομάδες ((...) + .group(1)) είναι καλές για 2-3 συλλήψεις. Από εκεί και πέρα, τα ονόματα κερδίζουν:

▶ PYTHONeditable · runs in your browser

Το .groupdict() επιστρέφει μια εντολή όλων των ομάδων με όνομα. Προσθέστε / αναδιατάξτε ομάδες χωρίς να σπάσετε κάθε ιστότοπο κλήσης που αναφέρεται σε ".group(3)".

«re.compile» — όταν πραγματικά βοηθάει

▶ PYTHONeditable · runs in your browser

Το stdlib διατηρεί μια μικρή προσωρινή μνήμη μεταγλωττισμένων μοτίβων (προεπιλεγμένο μέγεθος 512), επομένως οι εφάπαξ κλήσεις «re.search(pattern, text)» είναι ουσιαστικά δωρεάν μετά την πρώτη επίσκεψη. Το "re.compile" βοηθά ρητά όταν:

1. Το σχέδιο χρησιμοποιείται μέσα σε μια σφιχτή θηλιά (εκατομμύρια σπίρτα).

2. Θέλετε να αποθηκεύσετε το μοτίβο ως σταθερά σε επίπεδο μονάδας για grep-ability.

3. Χρειάζεστε «.finditer()», «.pattern», «.flags» στο μεταγλωττισμένο αντικείμενο.

Μην κάνετε υπερβολική μεταγλώττιση. Κάθε «re.compile» σε επίπεδο ενότητας προσθέτει ένα μικρό κόστος εισαγωγής.

Κοινές σημαίες

▶ PYTHONeditable · runs in your browser

Συνδυασμός με |: re.IGNORECASE | re.MULTILINE.

Όταν το regex είναι το ΛΑΘΟΣ εργαλείο

1. Ανάλυση HTML / XML → χρησιμοποιήστε έναν πραγματικό αναλυτή

▶ PYTHONeditable · runs in your browser

Η κλασική απάντηση στο Stack Overflow για αυτό είναι 20 ετών και εξακολουθεί να ισχύει.

2. Ανάλυση JSON → χρησιμοποιήστε το json

Η λειτουργική μονάδα json χειρίζεται ένθετα εισαγωγικά, χαρακτήρες διαφυγής, Unicode και κάθε θήκη RFC 8259. Το JSON με ανάλυση Regex είναι ένα σήμα κατά του μοτίβου.

3. Ανάλυση ημερομηνιών → χρησιμοποιήστε «dateutil» ή «datetime.strptime»

Το dateutil.parser.parse("2026-07-30") δέχεται κάθε μορφή που μπορεί να πληκτρολογήσει ένας άνθρωπος. Το "datetime.strptime" χειρίζεται αποτελεσματικά γνωστές μορφές. Και οι δύο χειρίζονται ζώνες ώρας. Το Regex θα έπρεπε να το εφεύρει ξανά.

4. Ένθετα / αναδρομικά μοτίβα → χρησιμοποιήστε μια γεννήτρια ανάλυσης

Οι αντιστοιχισμένες παρενέργειες, το ένθετο JSON, οι ισορροπημένες εκφράσεις είναι επίσημα πέρα από τη δύναμη του regex (περιοχή γραμματικής χωρίς πλαίσιο). Χρησιμοποιήστε «pyparsing» / «lark» / «ANTLR» — ή απλώς περπατήστε τη συμβολοσειρά με έναν μικρό αναλυτή.

Αποσφαλμάτωση regex

Χρησιμοποιήστε το regex101.com (επιλέξτε τη γεύση "Python"). Επικολλήστε το μοτίβο + δείγμα κειμένου. επισημαίνει αγώνες σε πραγματικό χρόνο, εξηγεί κάθε μεταχαρακτήρα και εμφανίζει ομάδες με όνομα. Ο ταχύτερος τρόπος για να μάθετε regex διαισθητικά.

Για τον εντοπισμό σφαλμάτων σε επίπεδο κώδικα, το "re.DEBUG" εκτυπώνει το μεταγλωττισμένο μηχάνημα κατάστασης:

▶ PYTHONeditable · runs in your browser

Εξάσκηση

Γράψτε ένα regex για το καθένα. Λύσεις παρακάτω.

1. Εξαγάγετε τον αριθμό έκδοσης από "Python 3.13.2 (κύρια, 15 Ιανουαρίου 2026, 10:32:11)" — θα πρέπει να επιστρέψει "3.13.2"".

2. Διαχωρίστε το "μήλο, μπανάνα, πορτοκάλι κεράσι"" σε οποιοδήποτε οριοθέτη (,, ;, ή διάστημα).

3. Ξαναγράψτε το "foo.bar_baz-123" ως "FOO.BAR_BAZ-123" (μόνο κεφαλαία γράμματα, άδεια ψηφία και σημεία στίξης).

Λύσεις:

▶ PYTHONeditable · runs in your browser

Το Regex είναι μια υπερδύναμη όταν ξεπεράσετε τα πρώτα 10 μοτίβα. Το κόλπο είναι να χτίσετε μυϊκή μνήμη στα πέντε παραπάνω — καλύπτουν το 90% της πραγματικής εργασίας. Αναζητήστε έναν πραγματικό αναλυτή τη στιγμή που θα βρείτε τον εαυτό σας να γράφει backreferences για να εξισορροπήσει τις παρενέργειες.

Επόμενο βήμα: regex + μαθήματα επεξεργασίας κειμένου στο κομμάτι Automation — εξασκηθείτε σε αρχεία καταγραφής, δεδομένα CSV και εργασίες scraping ιστού με πραγματική Python που εκτελείται στο πρόγραμμα περιήγησής σας.

Είστε έτοιμοι να το δοκιμάσετε;

15 μαθήματα δωρεάν μετά από δωρεάν εγγραφή — χωρίς κάρτα. Δοκιμάστε την πλατφόρμα και μετά αποφασίστε.

Ξεκινήστε δωρεάν →

Or unlock every lesson

Pro — $12/mo, unlimited AI, cancel any time. Refund within 14 days worldwide.

See Pro plans →

Get one Python lesson + one career idea every Friday

No spam, no "buy our course now". Three bullets, every Friday. Unsubscribe with one click.