Οι κανονικές εκφράσεις είναι ένα ισχυρό εργαλείο για την ανάλυση και επεξεργασία κειμένων. Σας επιτρέπουν να βρείτε, να ελέγξετε, να αντικαταστήσετε ή ακόμα και να διαχωρίσετε συγκεκριμένα μοτίβα σε ένα κείμενο. Αυτός ο οδηγός σας μεταδίδει τις βασικές αρχές της χρήσης κανονικών εκφράσεων σε Python με τη βοήθεια των modules re.match και re.search.
Σημαντικά συμπεράσματα
- Οι κανονικές εκφράσεις βοηθούν στην αναζήτηση συγκεκριμένων ακολουθιών χαρακτήρων σε κείμενα.
- re.match ελέγχει αν υπάρχει ένα μοτίβο στην αρχή του κειμένου.
- re.search βρίσκει το μοτίβο οπουδήποτε μέσα στο κείμενο.
- Η βιβλιοθήκη re της Python απαιτείται για την εργασία με κανονικές εκφράσεις.
Βήμα-βήμα οδηγίες
Για να κατανοήσεις πώς λειτουργούν οι κανονικές εκφράσεις, ακολουθούν τα βήματα για την υλοποίησή τους στην Python.
Αρχικά, δημιουργείς ένα νέο αρχείο στην Python 3. Εκεί ορίζεις κάποιες λέξεις που θέλεις να αναζητήσεις αργότερα σε ένα κείμενο. Για παράδειγμα, χρησιμοποιούμε τις λέξεις «όρος 1» και «όρος 2»:

Στη συνέχεια, γράφεις ένα κείμενο. Αυτό το κείμενο θα περιέχει τους όρους που θέλεις να αναζητήσεις. Για παράδειγμα: "Αυτή είναι μια συμβολοσειρά με τον όρο 1 ή τον όρο 1, αλλά δεν έχει άλλη διαδρομή."

Τώρα δημιουργείς έναν βρόχο που θα διατρέχει τους καθορισμένους όρους σου. Σε αυτόν τον βρόχο χρησιμοποιείς τη συνάρτηση print για να εμφανίσεις το αποτέλεσμα της αναζήτησης. Η συνάρτηση print χρησιμοποιείται για να εκτυπώσει τον τρέχοντα όρο αναζήτησης στην κονσόλα.

Για να είναι τα αποτελέσματα της αναζήτησης πιο ευανάγνωστα, μπορείς να μορφοποιήσεις τη συμβολοσειρά. Εδώ χρησιμοποιείς placeholders για να εμφανίσεις δυναμικά τον τρέχοντα όρο καθώς και το κείμενο.

Στη συνέχεια, υλοποιείς τη λογική για να ελέγξεις αν κάθε όρος υπάρχει στο κείμενο. Για αυτό χρησιμοποιούμε το re.search, το οποίο είναι μια χρήσιμη μέθοδος για την αναζήτηση ενός μοτίβου μέσα σε ένα κείμενο.

Όταν το re.search βρει μια αντιστοιχία, εκτυπώνεις ότι ο όρος είναι παρών, και αν όχι, η έξοδος ενημερώνει ότι δεν είναι παρών. Η έξοδος διαμορφώνεται με τρόπο που διευκολύνει την κατανόηση του τι είναι το αποτέλεσμα.
Το αποτέλεσμα θα σου δείξει ποιες λέξεις υπάρχουν στο κείμενο και ποιες όχι. Αν προσθέσεις επιπλέον λέξεις, ο βρόχος θα εκτελείται για κάθε μία από αυτές.

Για να ανακαλύψεις σε ποια θέση βρίσκεται ένας όρος στο κείμενο, μπορείς να χρησιμοποιήσεις τις συναρτήσεις match.start() και match.end(). Αυτές παρέχουν την αρχική και την τελική θέση για το αποτέλεσμα της αναζήτησής σου.

Η χρήση του match.start() σου δίνει την ακριβή θέση όπου ο όρος αρχίζει μέσα στο κείμενο. Με το match.end() παίρνεις την τελική θέση του βρεθέντος όρου.

Με αυτόν τον τρόπο μπορείς να εντοπίσεις τους βρεθέντες όρους στο κείμενο, αλλά και να βρεις τις ακριβείς θέσεις τους, κάτι που είναι χρήσιμο για στοχευμένη επεξεργασία.

Για το επόμενο βήμα, είναι συναρπαστικό, διότι ο επόμενος οδηγός θα δείξει πώς να μην αναζητάς μόνο μοτίβα με κανονικές εκφράσεις, αλλά και πώς να απομονώνεις ή να αντικαθιστάς συγκεκριμένα τμήματα του κειμένου. Αυτό σου ανοίγει μια ποικιλία δυνατοτήτων για να εκτελείς κειμενικές παρα manipulations.
Περίληψη – Εισαγωγή στις Κανονικές Εκφράσεις με Python: re.match και re.search
Οι κανονικές εκφράσεις είναι ένα αναντικατάστατο εργαλείο στον προγραμματισμό όσον αφορά την ανάλυση και τροποποίηση δεδομένων κειμένου. Σε αυτόν τον οδηγό μάθατε πώς να χρησιμοποιείτε τα modules re.match και re.search στην Python για να βρείτε όρους σε ένα κείμενο. Έχετε επίσης μάθει πώς να προσδιορίζετε τις θέσεις των αναζητούμενων όρων.
Συχνές ερωτήσεις
Πώς μπορώ να εισάγω το module re στην Python;Εισάγεις το module με "import re".
Ποια είναι η διαφορά μεταξύ re.match και re.search;Το re.match αναζητά μόνο στην αρχή της συμβολοσειράς, ενώ το re.search αναζητά παντού στη συμβολοσειρά.
Πώς μπορώ να βρω τη θέση ενός όρου στο κείμενο;Χρησιμοποίησε τις μεθόδους match.start() και match.end().
Μπορώ να χρησιμοποιήσω κανονικές εκφράσεις για να αντικαταστήσω κείμενο;Ναι, για αυτό μπορείς να χρησιμοποιήσεις τη συνάρτηση re.sub().
Πού μπορώ να μάθω περισσότερα για κανονικές εκφράσεις;Δες την επίσημη τεκμηρίωση της Python ή διαδικτυακούς πόρους για κανονικές εκφράσεις.