Regard autour

Expressions régulières en Python

Maria Eugenia Inzaugarat

Data Scientist

Regarder autour

  • Permet de confirmer qu'un sous-motif est avant ou après le motif principal

   

Expressions régulières en Python

Regarder autour

  • Permet de confirmer qu'un sous-motif est avant ou après le motif principal

 

À ma position actuelle dans l'appariement, regarder en avant ou en arrière et vérifier si un motif correspond ou non avant de continuer.

Expressions régulières en Python

Anticipation (look-ahead)

  • Groupe non capturant
  • Vérifie que la première partie de l'expression est suivie (ou non) par l'expression d'anticipation
  • Retourne seulement la première partie de l'expression

Expressions régulières en Python

Anticipation positive

  • Groupe non capturant
  • Vérifie que la première partie de l'expression est suivie par l'expression d'anticipation
  • Retourne seulement la première partie de l'expression

 

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

re.findall(r"\w+\.txt ", my_text)
Expressions régulières en Python

Anticipation positive

  • Groupe non capturant
  • Vérifie que la première partie de l'expression est suivie par l'expression d'anticipation
  • Retourne seulement la première partie de l'expression

 

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

re.findall(r"\w+\.txt(?=\stransferred)", my_text)
['tweets.txt', 'mypass.txt']
Expressions régulières en Python

Anticipation négative

  • Groupe non capturant
  • Vérifie que la première partie de l'expression n'est pas suivie par l'expression d'anticipation
  • Retourne seulement la première partie de l'expression

 

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

re.findall(r"\w+\.txt ", my_text)
Expressions régulières en Python

Anticipation négative

  • Groupe non capturant
  • Vérifie que la première partie de l'expression n'est pas suivie par l'expression d'anticipation
  • Retourne seulement la première partie de l'expression

 

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

re.findall(r"\w+\.txt(?!\stransferred)", my_text)
['keywords.txt']
Expressions régulières en Python

Rétrospection (look-behind)

  • Groupe non capturant
  • Récupère toutes les correspondances précédées (ou non) d'un motif précis.
  • Retourne le motif après l'expression de rétrospection

Expressions régulières en Python

Rétrospection positive

  • Groupe non capturant
  • Récupère toutes les correspondances précédées d'un motif précis.
  • Retourne le motif après l'expression de rétrospection

 

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

re.findall(r" \w+\s\w+", my_text)
Expressions régulières en Python

Rétrospection positive

  • Groupe non capturant
  • Récupère toutes les correspondances précédées d'un motif précis.
  • Retourne le motif après l'expression de rétrospection

 

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']
Expressions régulières en Python

Rétrospection négative

  • Groupe non capturant
  • Récupère toutes les correspondances qui ne sont pas précédées d'un motif précis.
  • Retourne le motif après l'expression de rétrospection

 

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']
Expressions régulières en Python

Passons à la pratique !

Expressions régulières en Python

Preparing Video For Download...