Lookaround

Reguläre Ausdrücke in Python

Maria Eugenia Inzaugarat

Data Scientist

Lookaround-Grundlagen

  • Bestätigt, ob ein Teilmuster vor oder nach dem Hauptmuster liegt

   

Reguläre Ausdrücke in Python

Lookaround

  • Bestätigt, ob ein Teilmuster vor oder nach dem Hauptmuster liegt

 

An meiner aktuellen Position im Abgleich prüfe ich vor oder zurück, ob ein Muster passt oder nicht, bevor ich fortfahre.

Reguläre Ausdrücke in Python

Lookahead

  • Nicht-kapturierende Gruppe
  • Prüft, ob auf den ersten Ausdrucksteil der Lookahead-Ausdruck folgt oder nicht
  • Gibt nur den ersten Ausdrucksteil zurück

Reguläre Ausdrücke in Python

Positiver Lookahead

  • Nicht-kapturierende Gruppe
  • Prüft, ob auf den ersten Ausdrucksteil der Lookahead-Ausdruck folgt
  • Gibt nur den ersten Ausdrucksteil zurück

 

my_text = "tweets.txt transferred, mypass.txt transferred, keywords.txt error"

re.findall(r"\w+\.txt ", my_text)
Reguläre Ausdrücke in Python

Positiver Lookahead

  • Nicht-kapturierende Gruppe
  • Prüft, ob auf den ersten Ausdrucksteil der Lookahead-Ausdruck folgt
  • Gibt nur den ersten Ausdrucksteil zurück

 

my_text = "tweets.txt transferred, mypass.txt transferred, keywords.txt error"

re.findall(r"\w+\.txt(?=\stransferred)", my_text)
['tweets.txt', 'mypass.txt']
Reguläre Ausdrücke in Python

Negativer Lookahead

  • Nicht-kapturierende Gruppe
  • Prüft, dass auf den ersten Ausdrucksteil nicht der Lookahead-Ausdruck folgt
  • Gibt nur den ersten Ausdrucksteil zurück

 

my_text = "tweets.txt transferred, mypass.txt transferred, keywords.txt error"

re.findall(r"\w+\.txt ", my_text)
Reguläre Ausdrücke in Python

Negativer Lookahead

  • Nicht-kapturierende Gruppe
  • Prüft, dass auf den ersten Ausdrucksteil nicht der Lookahead-Ausdruck folgt
  • Gibt nur den ersten Ausdrucksteil zurück

 

my_text = "tweets.txt transferred, mypass.txt transferred, keywords.txt error"

re.findall(r"\w+\.txt(?!\stransferred)", my_text)
['keywords.txt']
Reguläre Ausdrücke in Python

Lookbehind

  • Nicht-kapturierende Gruppe
  • Liefert Treffer, die von einem bestimmten Muster vorangestellt sind oder nicht
  • Gibt das Muster nach dem Lookbehind-Ausdruck zurück

Reguläre Ausdrücke in Python

Positiver Lookbehind

  • Nicht-kapturierende Gruppe
  • Finde alle Treffer, die von einem bestimmten Muster vorangestellt sind
  • Gibt das Muster nach dem Lookbehind-Ausdruck zurück

 

my_text = "Member: Angus Young, Member: Chris Slade, Past: Malcolm Young, Past: Cliff Williams."

re.findall(r" \w+\s\w+", my_text)
Reguläre Ausdrücke in Python

Positiver Lookbehind

  • Nicht-kapturierende Gruppe
  • Finde alle Treffer, die von einem bestimmten Muster vorangestellt sind
  • Gibt das Muster nach dem Lookbehind-Ausdruck zurück

 

my_text = "Member: Angus Young, Member: Chris Slade, Past: Malcolm Young, Past: Cliff Williams."

re.findall(r"(?<=Member:\s)\w+\s\w+", my_text)
['Angus Young', 'Chris Slade']
Reguläre Ausdrücke in Python

Negativer Lookbehind

  • Nicht-kapturierende Gruppe
  • Finde alle Treffer, die nicht von einem bestimmten Muster vorangestellt sind
  • Gibt das Muster nach dem Lookbehind-Ausdruck zurück

 

my_text = "My white cat sat at the table. However, my brown dog was lying on the couch."

re.findall(r"(?<!brown\s)(cat|dog)", my_text)
['cat']
Reguläre Ausdrücke in Python

Lass uns üben!

Reguläre Ausdrücke in Python

Preparing Video For Download...