Girig vs. icke-girig matchning

Reguljära uttryck i Python

Maria Eugenia Inzaugarat

Data Scientist

Girig vs. icke-girig matchning

  • Två typer av matchningsmetoder:

    • Girig
    • Icke-girig eller lat
  • Standardkvantifierare är giriga som standard: *, +, ?, {num, num}

Reguljära uttryck i Python

Girig matchning

  • Girig: matchar så många tecken som möjligt

  • Returnerar den längsta matchningen

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

Reguljära uttryck i Python

Girig matchning

  • Backtrackar när för många tecken matchats

  • Ger upp ett tecken i taget

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

Reguljära uttryck i Python

Icke-girig matchning

  • Lat: matchar så få tecken som möjligt
  • Returnerar den kortaste matchningen
  • Lägg till ? efter giriga kvantifierare
import re
re.match(r"\d+?", "12345bcada")
<re.Match object; span=(0, 1), match='1'>

Reguljära uttryck i Python

Icke-girig matchning

  • Backtrackar när för få tecken matchats

  • Utökar ett tecken i taget

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

Reguljära uttryck i Python

Nu kör vi en övning!

Reguljära uttryck i Python

Preparing Video For Download...