Gieriges vs. nicht gieriges Matching

Reguläre Ausdrücke in Python

Maria Eugenia Inzaugarat

Data Scientist

Gieriges vs. nicht gieriges Matching

  • Zwei Matching-Arten:

    • Gierig
    • Nicht gierig (lazy)
  • Standard-Quantoren sind standardmäßig gierig: *, +, ?, {num, num}

Reguläre Ausdrücke in Python

Gieriges Matching

  • Gierig: matched so viele Zeichen wie möglich

  • Gibt die längste Übereinstimmung zurück

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

Reguläre Ausdrücke in Python

Gieriges Matching

  • Backtracking, wenn zu viele Zeichen gematcht wurden

  • Gibt Zeichen einzeln wieder ab

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

Reguläre Ausdrücke in Python

Nicht gieriges Matching

  • Lazy: matched so wenige Zeichen wie nötig
  • Gibt die kürzeste Übereinstimmung zurück
  • Hänge ? an gierige Quantoren an
import re
re.match(r"\d+?", "12345bcada")
<re.Match object; span=(0, 1), match='1'>

Reguläre Ausdrücke in Python

Nicht gieriges Matching

  • Backtracking, wenn zu wenige Zeichen gematcht wurden

  • Erweitert Zeichen einzeln

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

Reguläre Ausdrücke in Python

Lass uns üben!

Reguläre Ausdrücke in Python

Preparing Video For Download...