re.Match: start(), end() și span() în Python

Pozițiile de început și de sfârșit ale potrivirii sau ale unui grup din ea.

Sintaxă
m.start(grup=0)
m.end(grup=0)
m.span(grup=0)

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