Intern
Aký je rozdiel medzi rematch a research?
sobes.tech AI
Odpoveď od AI
re.match a re.search sú funkcie z modulu re, ktoré sa používajú na hľadanie zhôd v reťazci pomocou regulárnych výrazov.
Hlavný rozdiel spočíva v tom, kde presne začínajú s hľadaním:
re.matchkontroluje zhodu len na začiatku reťazca.re.searchprehľadáva celý reťazec a vracia prvú nájdenú zhodu.
Ak sa nájde zhoda, obe funkcie vracajú objekt zhody (match object). Inak vracajú None.
Príklad:
import re
text = "futbal, tenis, basketbal"
# Vyhľadanie "tenis" na začiatku reťazca pomocou match
výsledok_match = re.match("tenis", text)
print(f"Výsledok match: {výsledok_match}") # Ukáže None
# Vyhľadanie "tenis" kdekoľvek v reťazci pomocou search
výsledok_search = re.search("tenis", text)
print(f"Výsledok search: {výsledok_search}") # Ukáže <re.Match object; span=(9, 15), match='tenis'>
Porovnanie:
| Vlastnosť | re.match(pattern, string) |
re.search(pattern, string) |
|---|---|---|
| Oblasť hľadania | Len na začiatku reťazca | Celý reťazec |
| Vráti | Objekt zhody alebo None |
Objekt zhody alebo None |
| Použitie | Kontrola prefixu reťazca | Vyhľadávanie podreťazca podľa vzoru |
Obe funkcie podporujú vlajky (flags) na zmenu správania hľadania, napríklad re.IGNORECASE.