Ce face re.match() și re.fullmatch()
re.match() caută potrivirea doar la începutul textului, nu oriunde ca search(). re.fullmatch() cere ca tot textul să se potrivească, fiind alegerea potrivită pentru validări (cod poștal, CNP, număr de telefon).
Ambele returnează un obiect Match sau None. Modelele compilate au metodele corespunzătoare Pattern.match() și Pattern.fullmatch().
Parametri
| Parametru | Descriere |
|---|---|
model |
Expresia regulată. |
text |
Textul verificat. |
flags |
Opțional. Flag-uri. |
Ce returnează
Un obiect re.Match sau None.
Exemple
Exemplul 1: Diferența dintre match, fullmatch și search
import re
text = "2026-10-19 eveniment"
print(bool(re.match(r"\d{4}", text)))
print(bool(re.match(r"eveniment", text)))
print(bool(re.search(r"eveniment", text)))
print(bool(re.fullmatch(r"\d{4}-\d{2}-\d{2}", text)))
Rezultat
True
False
True
False
Exemplul 2: Validarea unor coduri
import re
COD_POSTAL = re.compile(r"\d{6}")
for cod in ["700001", "70001", "700001a"]:
print(cod, "valid" if COD_POSTAL.fullmatch(cod) else "invalid")
m = re.match(r"(\d+)\s*(lei|euro)", "250 lei, cash")
print(m.groups())
Rezultat
700001 valid
70001 invalid
700001a invalid
('250', 'lei')
Greșeli frecvente
- Validezi cu
re.match(r"\d{6}", cod): textul"700001abc"trece, pentru că se verifică doar începutul. Foloseștefullmatch()sau pune$la final.
Comenzi înrudite
re.search(): Caută prima potrivire a unei expresii regulate oriunde într-un text.re.compile(): Compilează o expresie regulată într-un obiect Pattern, refolosibil și mai ușor de citit.str.isdigit(), isdecimal() și isnumeric(): Verifică dacă un text conține doar cifre.