Lookaround

Reguljära uttryck i Python

Maria Eugenia Inzaugarat

Data Scientist

Lookaround

  • Låter oss bekräfta att ett delmönster finns före eller efter huvudmönstret

   

Reguljära uttryck i Python

Lookaround

  • Låter oss bekräfta att ett delmönster finns före eller efter huvudmönstret

 

På min aktuella position i matchningsprocessen: titta framåt eller bakåt och kontrollera om ett mönster matchar eller inte innan jag fortsätter.

Reguljära uttryck i Python

Lookahead

  • Icke-infångande grupp
  • Kontrollerar att den första delen av uttrycket följs eller inte följs av lookahead-uttrycket
  • Returnerar bara den första delen av uttrycket

Reguljära uttryck i Python

Positiv lookahead

  • Icke-infångande grupp
  • Kontrollerar att den första delen av uttrycket följs av lookahead-uttrycket
  • Returnerar bara den första delen av uttrycket

 

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

re.findall(r"\w+\.txt ", my_text)
Reguljära uttryck i Python

Positiv lookahead

  • Icke-infångande grupp
  • Kontrollerar att den första delen av uttrycket följs av lookahead-uttrycket
  • Returnerar bara den första delen av uttrycket

 

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

re.findall(r"\w+\.txt(?=\stransferred)", my_text)
['tweets.txt', 'mypass.txt']
Reguljära uttryck i Python

Negativ lookahead

  • Icke-infångande grupp
  • Kontrollerar att den första delen av uttrycket inte följs av lookahead-uttrycket
  • Returnerar bara den första delen av uttrycket

 

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

re.findall(r"\w+\.txt ", my_text)
Reguljära uttryck i Python

Negativ lookahead

  • Icke-infångande grupp
  • Kontrollerar att den första delen av uttrycket inte följs av lookahead-uttrycket
  • Returnerar bara den första delen av uttrycket

 

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

re.findall(r"\w+\.txt(?!\stransferred)", my_text)
['keywords.txt']
Reguljära uttryck i Python

Lookbehind

  • Icke-infångande grupp
  • Hämtar alla träffar som föregås eller inte föregås av ett specifikt mönster.
  • Returnerar mönstret efter lookbehind-uttrycket

Reguljära uttryck i Python

Positiv lookbehind

  • Icke-infångande grupp
  • Hämtar alla träffar som föregås av ett specifikt mönster.
  • Returnerar mönstret efter lookbehind-uttrycket

 

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

re.findall(r" \w+\s\w+", my_text)
Reguljära uttryck i Python

Positiv lookbehind

  • Icke-infångande grupp
  • Hämtar alla träffar som föregås av ett specifikt mönster.
  • Returnerar mönstret efter lookbehind-uttrycket

 

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']
Reguljära uttryck i Python

Negativ lookbehind

  • Icke-infångande grupp
  • Hämtar alla träffar som inte föregås av ett specifikt mönster.
  • Returnerar mönstret efter lookbehind-uttrycket

 

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']
Reguljära uttryck i Python

Nu kör vi en övning!

Reguljära uttryck i Python

Preparing Video For Download...