Lookaround

Expresiones regulares en Python

Maria Eugenia Inzaugarat

Data Scientist

Mirar alrededor

  • Permiten confirmar si un subpatrón está antes o después del patrón principal

   

Expresiones regulares en Python

Mirar alrededor

  • Permiten confirmar si un subpatrón está antes o después del patrón principal

 

En la posición actual del proceso de coincidencia, mira adelante o atrás y comprueba si un patrón coincide o no antes de continuar.

Expresiones regulares en Python

Look-ahead

  • Grupo no capturante
  • Comprueba que la primera parte esté seguida o no por la expresión de lookahead
  • Devuelve solo la primera parte

Expresiones regulares en Python

Look-ahead positivo

  • Grupo no capturante
  • Comprueba que la primera parte esté seguida por la expresión de lookahead
  • Devuelve solo la primera parte

 

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

re.findall(r"\w+\.txt ", my_text)
Expresiones regulares en Python

Look-ahead positivo

  • Grupo no capturante
  • Comprueba que la primera parte esté seguida por la expresión de lookahead
  • Devuelve solo la primera parte

 

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

re.findall(r"\w+\.txt(?=\stransferred)", my_text)
['tweets.txt', 'mypass.txt']
Expresiones regulares en Python

Look-ahead negativo

  • Grupo no capturante
  • Comprueba que la primera parte no esté seguida por la expresión de lookahead
  • Devuelve solo la primera parte

 

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

re.findall(r"\w+\.txt ", my_text)
Expresiones regulares en Python

Look-ahead negativo

  • Grupo no capturante
  • Comprueba que la primera parte no esté seguida por la expresión de lookahead
  • Devuelve solo la primera parte

 

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

re.findall(r"\w+\.txt(?!\stransferred)", my_text)
['keywords.txt']
Expresiones regulares en Python

Look-behind

  • Grupo no capturante
  • Obtén coincidencias precedidas o no por un patrón específico
  • Devuelve el patrón tras el look-behind

Expresiones regulares en Python

Look-behind positivo

  • Grupo no capturante
  • Obtén todas las coincidencias precedidas por un patrón específico
  • Devuelve el patrón tras el look-behind

 

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

re.findall(r" \w+\s\w+", my_text)
Expresiones regulares en Python

Look-behind positivo

  • Grupo no capturante
  • Obtén todas las coincidencias precedidas por un patrón específico
  • Devuelve el patrón tras el 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']
Expresiones regulares en Python

Look-behind negativo

  • Grupo no capturante
  • Obtén todas las coincidencias que NO están precedidas por un patrón específico
  • Devuelve el patrón tras el 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']
Expresiones regulares en Python

¡Vamos a practicar!

Expresiones regulares en Python

Preparing Video For Download...