RegEx Python
- Προηγούμενη Σελίδα JSON Python
- Επόμενη Σελίδα PIP Python
Το RegEx ή η τυπική έκφραση είναι μια ακολουθία χαρακτήρων που δημιουργεί το μοτίβο αναζήτησης.
Το RegEx μπορεί να χρησιμοποιηθεί για τον έλεγχο αν μια αλφαριθμητική ακολουθία περιέχει το καθορισμένο μοτίβο αναζήτησης.
RegEx
Python προσφέρει μια μονάδα με το όνομα re
Το ενσωματωμένο πακέτο, μπορεί να χρησιμοποιηθεί για τη διαχείριση των εξωτερικών εκφράσεων。
Εισαγωγή re
Μódulo
import re
Python RegEx
Εισαγωγή re
Μετά την εισαγωγή του módulo, μπορείτε να ξεκινήσετε να χρησιμοποιείτε τις εξωτερικές εκφράσεις
Παράδειγμα
Ανακάλυψη αλφαβητικής συμβολοσειράς για να δούμε αν ξεκινά με "China" και τελειώνει με "country":
import re txt = "China is a great country" x = re.search("^China.*country$", txt)
Συναρτήσεις RegEx
re
Ο módulo παρέχει ένα σύνολο συναρτήσεων που επιτρέπουν την ανακάλυψη αλφαβητικών συμβολοσειρών για αντιστοιχίες:
Σύμβολο | Περιγραφή |
---|---|
findall | Επιστρέφει μια λίστα που περιέχει όλες τις αντιστοιχίες |
search | Εάν υπάρχει αντιστοιχία σε οποιαδήποτε θέση της αλφαβητικής συμβολοσειράς, τότε επιστρέφει το αντικείμενο Match |
split | Επιστρέφει μια λίστα που διαχωρίζει την αλφαβητική συμβολοσειρά σε κάθε αντιστοιχία |
sub | Αντικατάσταση μιας ή περισσότερων αντιστοιχιών με μια αλφαβητική συμβολοσειρά |
Μηχανικός χαρακτήρας
Μηχανικός χαρακτήρας είναι ο χαρακτήρας που έχει ειδική σημασία:
Χαρακτήρας | Περιγραφή | Παράδειγμα | TIY |
---|---|---|---|
[] | Συνολο χαρακτήρων | "[a-m]" | Προσπαθήστε: |
\ | Συμβολισμός ειδικής ακολουθίας (μήνυμα που μπορεί να χρησιμοποιηθεί και για την εξήγηση ειδικών χαρακτήρων) | "\d" | Προσπαθήστε: |
. | Κάποια χαρακτήρα (εκτός από τον χαρακτήρα νέας γραμμής) | "he..o" | Προσπαθήστε: |
^ | Άρχιση | "^hello" | Προσπαθήστε: |
$ | Τέλος | "world$" | Προσπαθήστε: |
* | Καμία ή περισσότερες εμφανίσεις | "aix*" | Προσπαθήστε: |
+ | Μία ή περισσότερες εμφανίσεις | "aix+" | Προσπαθήστε: |
{} | Συγκεκριμένη αναπαράσταση εμφάνισης | "al{2}" | Προσπαθήστε: |
| | Και οι δύο | "falls|stays" | Προσπαθήστε: |
() | Κατάληψη και Ομαδοποίηση |
Ειδική ακολουθία σημειωμάτων
Ειδική ακολουθία σημειωμάτων είναι \
Ακολουθεί με κάποιον χαρακτήρα από την παρακάτω τάβληση, έχει ειδική σημασία:
Χαρακτήρας | Περιγραφή | Παράδειγμα | TIY |
---|---|---|---|
\A | Εάν ο καθορισμένος χαρακτήρας βρίσκεται στην αρχή της αλφαβητικής συμβολοσειράς, τότε επιστρέφει την αντιστοιχία | "\AThe" | Προσπαθήστε: |
\b | Επιστρέφει μια αντιστοιχία που περιέχει τον καθορισμένο χαρακτήρα στην αρχή ή στο τέλος της λέξης |
r"\bain" r"rain\b" |
Προσπαθήστε: Προσπαθήστε: |
\B | Επιστρέφει μια αντιστοιχία που περιέχει τον καθορισμένο χαρακτήρα, αλλά δεν βρίσκεται στην αρχή (ή στο τέλος) της λέξης |
r"\Bain" r"rain\B" |
Προσπαθήστε: Προσπαθήστε: |
\d | Επιστρέφει μια αντιστοιχία που περιέχει αριθμούς (αριθμοί 0-9) | "\d" | Προσπαθήστε: |
\D | Επιστρέφει μια αντιστοιχία που δεν περιέχει αριθμούς | "\D" | Προσπαθήστε: |
\s | Επιστρέφει μια αντιστοιχία που περιέχει χαρακτήρες κενής θέσης | "\s" | Προσπαθήστε: |
\S | Επιστρέφει μια αντιστοιχία που δεν περιέχει χαρακτήρες κενής θέσης | "\S" | Προσπαθήστε: |
\w | Επιστρέφει μια αντιστοιχία, όπου η αλφαβητική συμβολοσειρά περιέχει οποιονδήποτε χαρακτήρα λέξης (από το a έως το Z, από το 0 έως το 9 και ο χαρακτήρας επιλογής _) |
"\w" | Προσπαθήστε: |
\W | Επιστρέφει μια αντιστοιχία, όπου η αλφαβητική συμβολοσειρά δεν περιέχει κανένα χαρακτήρα λέξης | "\W" | Προσπαθήστε: |
\Z | Εάν ο καθορισμένος χαρακτήρας βρίσκεται στο τέλος της αλφαβητικής συμβολοσειράς, τότε επιστρέφει την αντιστοιχία | "Spain\Z" | Προσπαθήστε: |
集合(Set)
Η συλλογή (Set) είναι ένα ζευγάρι παρενθέσεων: []
Μια ομάδα χαρακτήρων που έχει ειδική σημασία μέσα σε:
Συλλογή | Περιγραφή | Προσπαθήστε: |
---|---|---|
[arn] | Επιστρέφει τη σύμβαση οποιουδήποτε χαρακτήρα που περιέχει έναν από τους χαρακτήρες a, r ή n: | Προσπαθήστε: |
[a-n] | Επιστρέφει τη σύμβαση οποιουδήποτε μικρού χαρακτήρα μεταξύ των αλφαβητικών a και n: | Προσπαθήστε: |
[^arn] | Επιστρέφει τη σύμβαση οποιουδήποτε χαρακτήρα που δεν περιέχει τους χαρακτήρες a, r ή n: | Προσπαθήστε: |
[0123] | Επιστρέφει τη σύμβαση οποιουδήποτε χαρακτήρα που περιέχει οποιοδήποτε από τους αριθμούς 0, 1, 2 ή 3: | Προσπαθήστε: |
[0-9] | Επιστρέφει τη σύμβαση οποιουδήποτε αριθμού μεταξύ 0 και 9: | Προσπαθήστε: |
[0-5][0-9] | Επιστρέφει τη σύμβαση οποιουδήποτε αριθμού μεταξύ 0 και 9: | Προσπαθήστε: |
[a-zA-Z] | Επιστρέφει τη σύμβαση οποιουδήποτε χαρακτήρα μεταξύ των αλφαβητικών a και z, μικρός ή μεγάλος: | Προσπαθήστε: |
[+] | Στη συλλογή, τα +, *, ., |, (), $, {} δεν έχουν ειδική σημασία, οπότε το [+] σημαίνει: επιστρέφει τα συνδυασμένα στοιχεία με κάθε + χαρακτήρα στη συμβολοσειρά | Προσπαθήστε: |
Η συνάρτηση findall()
findall()
Η συνάρτηση επιστρέφει μια λίστα που περιέχει όλες τις συμβάσεις.
Παράδειγμα
Εκτυπώνεται η λίστα με όλες τις συμβάσεις:
import re str = "China is a great country" x = re.findall("a", str) print(x)
Η λίστα περιέχει τις συμβάσεις που βρέθηκαν κατά σειρά:
Αν δεν βρεθεί σύμβαση, επιστρέφεται κενή λίστα:
Παράδειγμα
Αν δεν βρεθεί σύμβαση, επιστρέφεται κενή λίστα:
import re str = "China is a great country" x = re.findall("USA", str) print(x)
Η συνάρτηση search()
search()
Η συνάρτηση αναζητά τη σύμβαση στη συμβολοσειρά και επιστρέφει το αντικείμενο Match αν υπάρχει σύμβαση.
Αν υπάρχουν πολλαπλές συμβάσεις, επιστρέφεται μόνο η πρώτη σύμβαση:
Παράδειγμα
Αναζητείται ο πρώτος κενός χαρακτήρας στη συμβολοσειρά:
import re str = "China is a great country" x = re.search("\s", str) print("Το πρώτο κενό χαρακτήρα βρίσκεται στη θέση:", x.start())
Αν δεν βρεθεί σύμβαση, επιστρέφεται η τιμή: Κενό
:
Παράδειγμα
Εκτελεί αναζήτηση χωρίς να επιστρέφει τη σύμβαση:
import re str = "China is a great country" x = re.search("USA", str) print(x)
Η συνάρτηση split()
split()
Η συνάρτηση επιστρέφει μια λίστα, όπου η αλφαβητική ακολουθία διαιρείται σε κάθε ταινία που ταιριάζει:
Παράδειγμα
Διαχωρίζεται σε κάθε κενό χαρακτήρα:
import re str = "China is a great country" x = re.split("\s", str) print(x)
Μπορείτε να καθορίσετε maxsplit
Παράμετρος για τον έλεγχο της εμφάνισης:
Παράδειγμα
Αντιμετωπίζεται η διαχωριστική γραμμή μόνο στη πρώτη εμφάνιση:
import re str = "China is a great country" x = re.split("\s", str, 1) print(x)
Η συνάρτηση sub()
sub()
Η συνάρτηση αντικαθιστά τη σύμβαση με το κείμενο που επιλέξατε:
Παράδειγμα
Για να αντικαταστήσουμε κάθε κενό χαρακτήρα με τον αριθμό 9:
import re str = "China is a great country" x = re.sub("\s", "9", str) print(x)
Μπορείτε να καθορίσετε count
Παράμετρος για τον έλεγχο του αριθμού αντικαταστάσεων:
Παράδειγμα
Αντικατάσταση των δύο πρώτων εμφανίσεων:
import re str = "China is a great country" x = re.sub("\s", "9", str, 2) print(x)
Αντικείμενο Match
Το αντικείμενο Match είναι το αντικείμενο που περιέχει πληροφορίες σχετικά με την αναζήτηση και τα αποτελέσματα.
Σημείωση:Εάν δεν υπάρχει ταιριάσματα, επιστρέφεται η τιμή Κενό
Και όχι το αντικείμενο Match.
Παράδειγμα
Η εκτέλεση θα επιστρέψει το αντικείμενο Match της αναζήτησης:
import re str = "China is a great country" x = re.search("a", str) print(x) # Θα εκτυπωθεί ένα αντικείμενο
Το αντικείμενο Match παρέχει ιδιότητες και μεθόδους για την απόκτηση πληροφοριών σχετικά με την αναζήτηση και τα αποτελέσματα:
span()
Το τρίο που επιστρέφεται περιλαμβάνει την θέση έναρξης και τέλους του ταιριάσματος.string
Επιστροφή της συμβολοσειράς που εισήχθη στη συνάρτησηgroup()
Επιστροφή του τμήματος της συναρμολογημένης συμβολοσειράς που ταιριάζει
Παράδειγμα
Εκτύπωση της θέσης της πρώτης ταιριάσματος που εμφανίζεται (θέση έναρξης και τέλους)
Αναζήτηση της παρακείμενης έκφρασης που ξεκινά με το κεφαλαίο "C" για οποιοδήποτε λέμμα:
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.span())
Παράδειγμα
Εκτύπωση της συμβολοσειράς που εισήχθη στη συνάρτηση:
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.string)
Παράδειγμα
Εκτύπωση του τμήματος της συναρμολογημένης συμβολοσειράς που ταιριάζει.
Αναζήτηση της παρακείμενης έκφρασης που ξεκινά με το κεφαλαίο "C" για οποιοδήποτε λέμμα:
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.group())
Σημείωση:Εάν δεν υπάρχει σύγκριση, επιστρέφεται η τιμή Κενό
Και όχι το αντικείμενο Match.
- Προηγούμενη Σελίδα JSON Python
- Επόμενη Σελίδα PIP Python