Lookaround

Expressões regulares em Python

Maria Eugenia Inzaugarat

Data Scientist

Olhando ao redor

  • Permitem confirmar se um subpadrão está à frente ou atrás do padrão principal

   

Expressões regulares em Python

Olhando ao redor

  • Permitem confirmar se um subpadrão está à frente ou atrás do padrão principal

 

Na posição atual do processo de matching, olhe à frente ou atrás e verifique se algum padrão casa ou não antes de continuar.

Expressões regulares em Python

Look-ahead

  • Grupo não capturante
  • Verifica se a primeira parte da expressão é (ou não) seguida pela expressão de lookahead
  • Retorna só a primeira parte da expressão

Expressões regulares em Python

Look-ahead positivo

  • Grupo não capturante
  • Verifica se a primeira parte da expressão é seguida pela expressão de lookahead
  • Retorna só a primeira parte da expressão

 

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

re.findall(r"\w+\.txt ", my_text)
Expressões regulares em Python

Look-ahead positivo

  • Grupo não capturante
  • Verifica se a primeira parte da expressão é seguida pela expressão de lookahead
  • Retorna só a primeira parte da expressão

 

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

re.findall(r"\w+\.txt(?=\stransferred)", my_text)
['tweets.txt', 'mypass.txt']
Expressões regulares em Python

Look-ahead negativo

  • Grupo não capturante
  • Verifica se a primeira parte da expressão não é seguida pela expressão de lookahead
  • Retorna só a primeira parte da expressão

 

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

re.findall(r"\w+\.txt ", my_text)
Expressões regulares em Python

Look-ahead negativo

  • Grupo não capturante
  • Verifica se a primeira parte da expressão não é seguida pela expressão de lookahead
  • Retorna só a primeira parte da expressão

 

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

re.findall(r"\w+\.txt(?!\stransferred)", my_text)
['keywords.txt']
Expressões regulares em Python

Look-behind

  • Grupo não capturante
  • Obtenha todos os matches que são (ou não) precedidos por um padrão específico.
  • Retorna o padrão após a expressão de look-behind

Expressões regulares em Python

Look-behind positivo

  • Grupo não capturante
  • Obtenha todos os matches que são precedidos por um padrão específico.
  • Retorna o padrão após a expressão de look-behind

 

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

re.findall(r" \w+\s\w+", my_text)
Expressões regulares em Python

Look-behind positivo

  • Grupo não capturante
  • Obtenha todos os matches que são precedidos por um padrão específico.
  • Retorna o padrão após a expressão de 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']
Expressões regulares em Python

Look-behind negativo

  • Grupo não capturante
  • Obtenha todos os matches que não são precedidos por um padrão específico.
  • Retorna o padrão após a expressão de 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']
Expressões regulares em Python

Vamos praticar!

Expressões regulares em Python

Preparing Video For Download...