Огляди (lookaround)

Regular Expressions in Python

Maria Eugenia Inzaugarat

Data Scientist

Огляди навколо

  • Дозволяє перевірити, чи підшаблон стоїть перед або після основного шаблону

   

Regular Expressions in Python

Огляди навколо

  • Дозволяє підтвердити, що підшаблон розміщений перед або після основного шаблону

 

На поточній позиції під час зіставлення подивіться вперед або назад і перевірте, чи збігається певний шаблон, перш ніж продовжити.

Regular Expressions in Python

Look-ahead

  • Некепчерна група
  • Перевіряє, чи за першою частиною виразу йде або не йде вираз lookahead
  • Повертає лише першу частину виразу

Regular Expressions in Python

Позитивний look-ahead

  • Некепчерна група
  • Перевіряє, чи за першою частиною виразу йде вираз lookahead
  • Повертає лише першу частину виразу

 

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

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

Позитивний look-ahead

  • Некепчерна група
  • Перевіряє, чи за першою частиною виразу йде вираз lookahead
  • Повертає лише першу частину виразу

 

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

Негативний look-ahead

  • Некепчерна група
  • Перевіряє, що за першою частиною виразу не йде вираз lookahead
  • Повертає лише першу частину виразу

 

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

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

Негативний look-ahead

  • Некепчерна група
  • Перевіряє, що за першою частиною виразу не йде вираз lookahead
  • Повертає лише першу частину виразу

 

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

  • Некепчерна група
  • Отримайте всі збіги, перед якими є або немає заданого шаблону
  • Повертає шаблон після виразу look-behind

Regular Expressions in Python

Позитивний look-behind

  • Некепчерна група
  • Отримайте всі збіги, перед якими є заданий шаблон
  • Повертає шаблон після виразу 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

Позитивний look-behind

  • Некепчерна група
  • Отримайте всі збіги, перед якими є заданий шаблон
  • Повертає шаблон після виразу 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

Негативний look-behind

  • Некепчерна група
  • Отримайте всі збіги, перед якими нема заданого шаблону
  • Повертає шаблон після виразу 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

Давайте потренуємось!

Regular Expressions in Python

Preparing Video For Download...