re.match() și re.fullmatch() în Python

Expresii regulate (re) Python 3.0+ (fullmatch: 3.4+)

Verifică dacă începutul textului (match) sau tot textul (fullmatch) se potrivește modelului.

Sintaxă
re.match(model, text, flags=0)
re.fullmatch(model, text, flags=0)

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ște fullmatch() sau pune $ la final.

Comenzi înrudite