Lookaround

Regular Expressions in Python

Maria Eugenia Inzaugarat

Data Scientist

Lookaround

  • Umožňuje ověřit, zda se podvzor nachází před nebo za hlavním vzorem

   

Regular Expressions in Python

Lookaround

  • Umožňuje ověřit, zda se podvzor nachází před nebo za hlavním vzorem

 

Na aktuální pozici v procesu porovnávání se podívejte dopředu nebo dozadu a zjistěte, zda určitý vzor odpovídá nebo neodpovídá.

Regular Expressions in Python

Look-ahead

  • Nezachycující skupina
  • Ověřuje, zda první část výrazu je nebo není následována výrazem lookahead
  • Vrátí pouze první část výrazu

Regular Expressions in Python

Pozitivní look-ahead

  • Nezachycující skupina
  • Ověřuje, že první část výrazu je následována výrazem lookahead
  • Vrátí pouze první část výrazu

 

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

re.findall(r"\w+\.txt ", my_text)
Regular Expressions in Python

Pozitivní look-ahead

  • Nezachycující skupina
  • Ověřuje, že první část výrazu je následována výrazem lookahead
  • Vrátí pouze první část výrazu

 

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

re.findall(r"\w+\.txt(?=\stransferred)", my_text)
['tweets.txt', 'mypass.txt']
Regular Expressions in Python

Negativní look-ahead

  • Nezachycující skupina
  • Ověřuje, že první část výrazu není následována výrazem lookahead
  • Vrátí pouze první část výrazu

 

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

re.findall(r"\w+\.txt ", my_text)
Regular Expressions in Python

Negativní look-ahead

  • Nezachycující skupina
  • Ověřuje, že první část výrazu není následována výrazem lookahead
  • Vrátí pouze první část výrazu

 

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

re.findall(r"\w+\.txt(?!\stransferred)", my_text)
['keywords.txt']
Regular Expressions in Python

Look-behind

  • Nezachycující skupina
  • Nalezne shody předcházené nebo nepředcházené určitým vzorem.
  • Vrátí vzor za výrazem look-behind

Regular Expressions in Python

Pozitivní look-behind

  • Nezachycující skupina
  • Nalezne shody předcházené určitým vzorem.
  • Vrátí vzor za výrazem look-behind

 

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

re.findall(r" \w+\s\w+", my_text)
Regular Expressions in Python

Pozitivní look-behind

  • Nezachycující skupina
  • Nalezne shody předcházené určitým vzorem.
  • Vrátí vzor za výrazem 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']
Regular Expressions in Python

Negativní look-behind

  • Nezachycující skupina
  • Nalezne shody, které nejsou předcházeny určitým vzorem.
  • Vrátí vzor za výrazem 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']
Regular Expressions in Python

Pojďme si procvičit!

Regular Expressions in Python

Preparing Video For Download...