Ομαδοποιητικές παρενθέσεις στις κανονικές εκφράσεις της Python
Στα προηγούμενα παραδείγματα, οι τελεστές επανάληψης δρούσαν μόνο σε έναν χαρακτήρα, ο οποίος βρισκόταν μπροστά τους. Τι πρέπει να κάνετε εάν χρειάζεται να δράσουν σε πολλούς χαρακτήρες;
Για αυτό υπάρχουν οι ομαδοποιητικές παρενθέσεις
'(' και . Λειτουργούν ως εξής:
αν κάτι βρίσκεται μέσα σε ομαδοποιητικές παρενθέσεις
και αμέσως μετά την ')'')' υπάρχει ένας τελεστής
επανάληψης - θα δράσει σε όλα όσα
βρίσκονται μέσα στις παρενθέσεις.
Στο επόμενο παράδειγμα, το μοτίβο αναζήτησης μοιάζει
με αυτό: γράμμα 'x', στη συνέχεια συμβολοσειρά
'ab' μία ή περισσότερες φορές, μετά γράμμα
'x':
txt = 'xabx xababx xaabbx'
res = re.sub('x(ab)+x', '!', txt)
print(res)
Αποτέλεσμα εκτέλεσης του κώδικα:
'! ! xaabbx'
Δίνεται συμβολοσειρά:
txt = 'ab abab abab abababab abea'
Γράψτε μια κανονική έκφραση που θα βρει συμβολοσειρές
σύμφωνα με το μοτίβο: συμβολοσειρά 'ab' επαναλαμβάνεται
1 ή περισσότερες φορές.