Lookaround

Expresii regulate în Python

Maria Eugenia Inzaugarat

Data Scientist

Privind în jur

  • Permite confirmarea că un sub-tipar se află înaintea sau în urma tiparului principal

   

Expresii regulate în Python

Privind în jur

  • Permite confirmarea că un sub-tipar se află înaintea sau în urma tiparului principal

 

În poziția curentă din procesul de potrivire, privește înainte sau înapoi și verifică dacă un tipar se potrivește sau nu înainte de a continua.

Expresii regulate în Python

Look-ahead

  • Grup non-capturat
  • Verifică că prima parte a expresiei este sau nu urmată de expresia lookahead
  • Returnează doar prima parte a expresiei

Expresii regulate în Python

Look-ahead pozitiv

  • Grup non-capturat
  • Verifică că prima parte a expresiei este urmată de expresia lookahead
  • Returnează doar prima parte a expresiei

 

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

re.findall(r"\w+\.txt ", my_text)
Expresii regulate în Python

Look-ahead pozitiv

  • Grup non-capturat
  • Verifică că prima parte a expresiei este urmată de expresia lookahead
  • Returnează doar prima parte a expresiei

 

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

re.findall(r"\w+\.txt(?=\stransferred)", my_text)
['tweets.txt', 'mypass.txt']
Expresii regulate în Python

Look-ahead negativ

  • Grup non-capturat
  • Verifică că prima parte a expresiei nu este urmată de expresia lookahead
  • Returnează doar prima parte a expresiei

 

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

re.findall(r"\w+\.txt ", my_text)
Expresii regulate în Python

Look-ahead negativ

  • Grup non-capturat
  • Verifică că prima parte a expresiei nu este urmată de expresia lookahead
  • Returnează doar prima parte a expresiei

 

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

re.findall(r"\w+\.txt(?!\stransferred)", my_text)
['keywords.txt']
Expresii regulate în Python

Look-behind

  • Grup non-capturat
  • Obține potrivirile precedate sau nu de un anumit tipar.
  • Returnează tiparul după expresia look-behind

Expresii regulate în Python

Look-behind pozitiv

  • Grup non-capturat
  • Obține potrivirile precedate de un anumit tipar.
  • Returnează tiparul după expresia look-behind

 

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

re.findall(r" \w+\s\w+", my_text)
Expresii regulate în Python

Look-behind pozitiv

  • Grup non-capturat
  • Obține potrivirile precedate de un anumit tipar.
  • Returnează tiparul după expresia 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']
Expresii regulate în Python

Look-behind negativ

  • Grup non-capturat
  • Obține potrivirile care nu sunt precedate de un anumit tipar.
  • Returnează tiparul după expresia 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']
Expresii regulate în Python

Să exersăm!

Expresii regulate în Python

Preparing Video For Download...