Ce face re.Match: start(), end() și span()
start() dă poziția primului caracter potrivit, end() poziția de după ultimul, iar span() tuplul (start, end). Astfel, text[m.start():m.end()] este exact m.group().
Cu argument, metodele se referă la un grup. Pentru un grup care nu a participat la potrivire returnează -1 (sau (-1, -1)).
Parametri
| Parametru | Descriere |
|---|---|
grup |
Opțional. Numărul sau numele grupului. Implicit 0 (toată potrivirea). |
Ce returnează
Un întreg sau un tuplu de doi întregi.
Exemple
Exemplul 1: Evidențierea cuvintelor găsite
import re
text = "Ana și Ioana merg la Iași"
rezultat = ""
ultim = 0
for m in re.finditer(r"\b[A-Z]\w+", text):
print(m.group(), m.span())
rezultat += text[ultim:m.start()] + "[" + m.group() + "]"
ultim = m.end()
print(rezultat + text[ultim:])
Rezultat
Ana (0, 3)
Ioana (7, 12)
Iași (21, 25)
[Ana] și [Ioana] merg la [Iași]
Greșeli frecvente
- Te aștepți ca
end()să fie poziția ultimului caracter. Este poziția de după el, la fel ca la felii.
Comenzi înrudite
re.Match: group(), groups(), groupdict(), expand(): Metodele obiectului Match prin care citești textul găsit și grupurile capturate.re.finditer(): Parcurge toate potrivirile unui model, dând pentru fiecare un obiect Match cu poziție și grupuri.str.find(), rfind(), index() și rindex(): Caută un subșir într-un text și returnează poziția primei (sau ultimei) apariții.