Lookaround

Espressioni regolari in Python

Maria Eugenia Inzaugarat

Data Scientist

Looking around

  • Permettono di verificare se un sotto-pattern è davanti o dietro al pattern principale

   

Espressioni regolari in Python

Looking around

  • Permettono di verificare se un sotto-pattern è davanti o dietro al pattern principale

 

Nel punto corrente del processo di matching, guarda avanti o dietro e verifica se un pattern fa match o no prima di continuare.

Espressioni regolari in Python

Look-ahead

  • Gruppo non catturante
  • Verifica che la prima parte sia seguita o meno dall’espressione di lookahead
  • Restituisce solo la prima parte dell’espressione

Espressioni regolari in Python

Look-ahead positivo

  • Gruppo non catturante
  • Verifica che la prima parte sia seguita dall’espressione di lookahead
  • Restituisce solo la prima parte dell’espressione

 

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

re.findall(r"\w+\.txt ", my_text)
Espressioni regolari in Python

Look-ahead positivo

  • Gruppo non catturante
  • Verifica che la prima parte sia seguita dall’espressione di lookahead
  • Restituisce solo la prima parte dell’espressione

 

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

re.findall(r"\w+\.txt(?=\stransferred)", my_text)
['tweets.txt', 'mypass.txt']
Espressioni regolari in Python

Look-ahead negativo

  • Gruppo non catturante
  • Verifica che la prima parte non sia seguita dall’espressione di lookahead
  • Restituisce solo la prima parte dell’espressione

 

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

re.findall(r"\w+\.txt ", my_text)
Espressioni regolari in Python

Look-ahead negativo

  • Gruppo non catturante
  • Verifica che la prima parte non sia seguita dall’espressione di lookahead
  • Restituisce solo la prima parte dell’espressione

 

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

re.findall(r"\w+\.txt(?!\stransferred)", my_text)
['keywords.txt']
Espressioni regolari in Python

Look-behind

  • Gruppo non catturante
  • Trova match preceduti o meno da un pattern specifico
  • Restituisce il pattern dopo il look-behind

Espressioni regolari in Python

Look-behind positivo

  • Gruppo non catturante
  • Trova tutti i match preceduti da un pattern specifico
  • Restituisce il pattern dopo il look-behind

 

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

re.findall(r" \w+\s\w+", my_text)
Espressioni regolari in Python

Look-behind positivo

  • Gruppo non catturante
  • Trova tutti i match preceduti da un pattern specifico
  • Restituisce il pattern dopo il look-behind

 

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']
Espressioni regolari in Python

Look-behind negativo

  • Gruppo non catturante
  • Trova tutti i match che NON sono preceduti da un pattern specifico
  • Restituisce il pattern dopo il look-behind

 

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']
Espressioni regolari in Python

Ayo berlatih!

Espressioni regolari in Python

Preparing Video For Download...