Intern
Mi a különbség a rematch és a research között?
sobes.tech MI
Válasz az MI-től
A re.match és a re.search a re modulból származó függvények, amelyeket reguláris kifejezésekkel való egyezések keresésére használnak egy sztringben.
A fő különbség abban rejlik, hogy pontosan hol kezdik a keresést:
- A
re.matchcsak a sztring elején ellenőrzi az egyezést. - A
re.searchaz egész sztringet átvizsgálja, és az első megtalált egyezést adja vissza.
Ha egyezést talál, mindkét függvény egy egyezés objektumot (match object) ad vissza. Ellenkező esetben None-t.
Példa:
import re
szöveg = "futball, tenisz, kosárlabda"
# Egyezés keresése a szöveg elején a `match`-szal
eredmeny_match = re.match("tenisz", szöveg)
print(f"Match eredmény: {eredmeny_match}") # None-t fog mutatni
# Egyezés keresése bárhol a szövegben a `search`-szel
eredmeny_search = re.search("tenisz", szöveg)
print(f"Search eredmény: {eredmeny_search}") # <re.Match object; span=(9, 15), match='tenisz'>
Összehasonlítás:
| Jellemző | re.match(pattern, string) |
re.search(pattern, string) |
|---|---|---|
| Keresési terület | Csak a szöveg elején | Egész szöveg |
| Visszatérés | Egyezés objektum vagy None |
Egyezés objektum vagy None |
| Alkalmazás | A szöveg prefixének ellenőrzése | Alt szöveg keresése mintázat szerint |
Mindkét függvény támogatja a (flags) zászlókat, amelyek megváltoztatják a keresés viselkedését, például a re.IGNORECASE-t.