Dopasowanie zachłanne i niezachłanne

Wyrażenia regularne w Pythonie

Maria Eugenia Inzaugarat

Data Scientist

Dopasowanie zachłanne i niezachłanne

  • Dwa typy dopasowania:

    • Zachłanne
    • Niezachłanne (leniwe)
  • Standardowe kwantyfikatory są domyślnie zachłanne: *, +, ?, {num, num}

Wyrażenia regularne w Pythonie

Dopasowanie zachłanne

  • Zachłanne: dopasowuje jak najwięcej znaków

  • Zwraca najdłuższe dopasowanie

import re
re.match(r"\d+", "12345bcada")
<re.Match object; span=(0, 5), match='12345'>

Wyrażenia regularne w Pythonie

Dopasowanie zachłanne

  • Cofa się, gdy dopasowano zbyt wiele znaków

  • Oddaje znaki jeden po jednym

import re
re.match(r".*hello", "xhelloxxxxxx")
<re.Match object; span=(0, 6), match='xhello'>

Wyrażenia regularne w Pythonie

Dopasowanie niezachłanne

  • Leniwe: dopasowuje jak najmniej znaków
  • Zwraca najkrótsze dopasowanie
  • Dodaj ? do zachłannych kwantyfikatorów
import re
re.match(r"\d+?", "12345bcada")
<re.Match object; span=(0, 1), match='1'>

Wyrażenia regularne w Pythonie

Dopasowanie niezachłanne

  • Cofa się, gdy dopasowano zbyt mało znaków

  • Rozszerza dopasowanie o jeden znak na raz

import re
re.match(r".*?hello", "xhelloxxxxxx")
<re.Match object; span=(0, 6), match='xhello'>

Wyrażenia regularne w Pythonie

Czas na ćwiczenia!

Wyrażenia regularne w Pythonie

Preparing Video For Download...