Просмотр вперёд и назад

Регулярные выражения в Python

Maria Eugenia Inzaugarat

Data Scientist

Просмотр вперёд и назад

  • Позволяют проверить, находится ли подшаблон перед основным или после него

   

Регулярные выражения в Python

Просмотр вперёд и назад

  • Позволяют проверить, находится ли подшаблон перед основным или после него

 

На текущей позиции в процессе поиска — посмотреть вперёд или назад и проверить, совпадает ли шаблон, прежде чем продолжить.

Регулярные выражения в Python

Просмотр вперёд

  • Незахватывающая группа
  • Проверяет, следует ли за первой частью выражения шаблон просмотра вперёд или нет
  • Возвращает только первую часть выражения

Регулярные выражения в Python

Позитивный просмотр вперёд

  • Незахватывающая группа
  • Проверяет, следует ли за первой частью выражения шаблон просмотра вперёд
  • Возвращает только первую часть выражения

 

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

re.findall(r"\w+\.txt ", my_text)
Регулярные выражения в Python

Позитивный просмотр вперёд

  • Незахватывающая группа
  • Проверяет, следует ли за первой частью выражения шаблон просмотра вперёд
  • Возвращает только первую часть выражения

 

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

re.findall(r"\w+\.txt(?=\stransferred)", my_text)
['tweets.txt', 'mypass.txt']
Регулярные выражения в Python

Негативный просмотр вперёд

  • Незахватывающая группа
  • Проверяет, что за первой частью выражения не следует шаблон просмотра вперёд
  • Возвращает только первую часть выражения

 

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

re.findall(r"\w+\.txt ", my_text)
Регулярные выражения в Python

Негативный просмотр вперёд

  • Незахватывающая группа
  • Проверяет, что за первой частью выражения не следует шаблон просмотра вперёд
  • Возвращает только первую часть выражения

 

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

re.findall(r"\w+\.txt(?!\stransferred)", my_text)
['keywords.txt']
Регулярные выражения в Python

Просмотр назад

  • Незахватывающая группа
  • Находит совпадения, которым предшествует или не предшествует определённый шаблон.
  • Возвращает шаблон после выражения просмотра назад

Регулярные выражения в Python

Позитивный просмотр назад

  • Незахватывающая группа
  • Находит совпадения, которым предшествует определённый шаблон.
  • Возвращает шаблон после выражения просмотра назад

 

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

re.findall(r" \w+\s\w+", my_text)
Регулярные выражения в Python

Позитивный просмотр назад

  • Незахватывающая группа
  • Находит совпадения, которым предшествует определённый шаблон.
  • Возвращает шаблон после выражения просмотра назад

 

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']
Регулярные выражения в Python

Негативный просмотр назад

  • Незахватывающая группа
  • Находит совпадения, которым не предшествует определённый шаблон.
  • Возвращает шаблон после выражения просмотра назад

 

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']
Регулярные выражения в Python

Давайте потренируемся!

Регулярные выражения в Python

Preparing Video For Download...