Expresiile regulate Python simplificate
Expresiile regulate (regex) sunt instrumente puternice folosite pentru potrivirea și manipularea șirurilor pe baza modelelor. În Python, modulul re
oferă suport pentru expresii regulate, permițându-vă să efectuați operații complexe cu șiruri în mod eficient. Acest articol vă va prezenta elementele de bază ale expresiilor regulate și vă va arăta cum să le utilizați eficient în Python.
Noțiuni introductive cu modulul re
Pentru a utiliza expresii regulate în Python, trebuie să importați modulul re
. Acest modul oferă mai multe funcții pentru lucrul cu modele regex:
re.match()
- Verifică pentru o potrivire numai la începutul șirului.re.search()
- Caută o potrivire în întregul șir.re.findall()
- Găsește toate potrivirile din șir și le returnează ca o listă.re.sub()
- Înlocuiește potrivirile din șir cu o înlocuire specificată.
Potrivirea de bază a modelului
Expresiile regulate folosesc caractere speciale pentru a defini modelele de căutare. Iată câteva modele de bază:
.
- Se potrivește cu orice caracter, cu excepția linie nouă.\d
- Se potrivește cu orice cifră (echivalent cu[0-9]
).\w
- Se potrivește cu orice caracter alfanumeric (echivalent cu[a-zA-Z0-9_]
).\s
- Se potrivește cu orice caracter de spațiu alb.^
- Se potrivește cu începutul șirului.$
- Se potrivește cu sfârșitul șirului.
Exemple
Iată câteva exemple care demonstrează potrivirea de bază a modelelor:
import re
# Match a pattern at the beginning of a string
result = re.match(r'Hello', 'Hello, World!')
print(result.group()) # Output: Hello
# Search for a pattern in the entire string
result = re.search(r'\d+', 'There are 24 hours in a day.')
print(result.group()) # Output: 24
Utilizarea expresiilor regulate cu grupuri
Grupurile sunt folosite pentru a captura părți din textul potrivit. Ele sunt definite folosind paranteze. De exemplu, pentru a extrage anumite părți ale unui model, puteți utiliza grupuri:
pattern = r'(\d{3})-(\d{2})-(\d{4})'
text = 'My number is 123-45-6789.'
# Find all matches with groups
match = re.search(pattern, text)
if match:
print(f'Area Code: {match.group(1)}') # Output: 123
print(f'Prefix: {match.group(2)}') # Output: 45
print(f'Suffix: {match.group(3)}') # Output: 6789
Folosind caractere speciale
Expresiile regulate includ mai multe caractere speciale pentru potrivirea modelelor mai complexe:
*
- Se potrivește cu 0 sau mai multe apariții ale elementului precedent.+
- Se potrivește cu 1 sau mai multe apariții ale elementului precedent.?
- Se potrivește cu 0 sau 1 apariție a elementului precedent.{n}
- Se potrivește exact cu aparițiilen
ale elementului precedent.|
- Se potrivește fie cu modelul de dinainte, fie cu modelul de după.
Exemple
Iată câteva exemple de utilizare a caracterelor speciale:
# Match a pattern with 0 or more occurrences
result = re.findall(r'\d*', '123 abc 456')
print(result) # Output: ['123', '', '', '456']
# Match a pattern with 1 or more occurrences
result = re.findall(r'\d+', 'There are 24 apples and 3 oranges.')
print(result) # Output: ['24', '3']
Înlocuirea textului cu expresii regulate
Funcția re.sub()
este folosită pentru a înlocui părți ale șirului care se potrivesc cu un model:
text = 'The rain in Spain falls mainly in the plain.'
# Replace 'Spain' with 'France'
new_text = re.sub(r'Spain', 'France', text)
print(new_text) # Output: The rain in France falls mainly in the plain.
Concluzie
Expresiile regulate sunt un instrument puternic pentru potrivirea modelelor și manipularea textului în Python. Cu modulul re
, puteți căuta, potrivi și înlocui text pe baza modelelor complexe. Înțelegând sintaxa de bază și caracterele speciale, puteți folosi expresiile regulate pentru a gestiona eficient o gamă largă de sarcini de procesare a textului.