Ce face re.search()
re.search() parcurge textul și returnează un obiect Match pentru prima porțiune care se potrivește modelului, sau None dacă nu găsește nimic. Din obiectul Match iei textul găsit (.group()), grupurile și poziția.
Scrie modelele ca șiruri raw (r"\d+"), ca backslash-urile să ajungă neschimbate la modulul re. Elemente de bază: \d cifră, \w literă/cifră/_, \s spațiu, . orice caracter, + unul sau mai multe, * zero sau mai multe, ? opțional, [abc] unul dintre caractere, ( ) grup, ^/$ început/sfârșit.
Flag-uri uzuale: re.IGNORECASE (re.I), re.MULTILINE (re.M), re.DOTALL (re.S), re.VERBOSE (re.X). Metoda Pattern.search() a unui model compilat face același lucru și acceptă pozițiile pos și endpos.
Parametri
| Parametru | Descriere |
|---|---|
model |
Expresia regulată (text sau model compilat). |
text |
Textul în care se caută. |
flags |
Opțional. Flag-uri combinate cu |. |
Ce returnează
Un obiect re.Match sau None.
Exemple
Exemplul 1: Găsirea unui număr de telefon
import re
text = "Sună-mă la 0722 123 456 după ora 18."
m = re.search(r"07\d{2} \d{3} \d{3}", text)
if m:
print("Găsit:", m.group(), "la poziția", m.start())
print(re.search(r"\d{4}-\d{2}", text))
Rezultat
Găsit: 0722 123 456 la poziția 11
None
Exemplul 2: Grupuri și IGNORECASE
import re
m = re.search(r"(\w+)@(\w+)\.ro", "Contact: ANA@EXEMPLU.ro", re.IGNORECASE)
print(m.group(0), "|", m.group(1), "|", m.group(2))
print(re.search(r"^iași", "Iași", re.I) is not None)
Rezultat
ANA@EXEMPLU.ro | ANA | EXEMPLU
True
Greșeli frecvente
- Apelezi
.group()fără să verifici rezultatul. Dacă nu există potrivire, primeștiAttributeError: 'NoneType' object has no attribute 'group'. - Scrii modelul fără
rîn față:"\bcuvânt\b".\bdevine caracterul backspace și modelul nu mai găsește nimic.
Comenzi înrudite
re.match() și re.fullmatch(): Verifică dacă începutul textului (match) sau tot textul (fullmatch) se potrivește modelului.re.findall(): Returnează lista tuturor potrivirilor unui model într-un text.re.compile(): Compilează o expresie regulată într-un obiect Pattern, refolosibil și mai ușor de citit.re.Match: group(), groups(), groupdict(), expand(): Metodele obiectului Match prin care citești textul găsit și grupurile capturate.