环视

Python 中的正则表达式

Maria Eugenia Inzaugarat

Data Scientist

环视概念(Looking around)

  • 用于确认子模式在主模式之前或之后

   

Python 中的正则表达式

环视概念(Looking around)

  • 用于确认子模式在主模式之前或之后

 

在当前匹配位置,向前或向后查看,判断某个模式是否匹配,然后再继续。

Python 中的正则表达式

前瞻(Look-ahead)

  • 非捕获组
  • 检查表达式前半部分后面是否跟随或不跟随前瞻表达式
  • 仅返回表达式的前半部分

Python 中的正则表达式

正前瞻(Positive look-ahead)

  • 非捕获组
  • 检查表达式前半部分后面是否跟随前瞻表达式
  • 仅返回表达式的前半部分

 

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

re.findall(r"\w+\.txt ", my_text)
Python 中的正则表达式

正前瞻(Positive look-ahead)

  • 非捕获组
  • 检查表达式前半部分后面是否跟随前瞻表达式
  • 仅返回表达式的前半部分

 

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

re.findall(r"\w+\.txt(?=\stransferred)", my_text)
['tweets.txt', 'mypass.txt']
Python 中的正则表达式

负前瞻(Negative look-ahead)

  • 非捕获组
  • 检查表达式前半部分后面是否跟随前瞻表达式
  • 仅返回表达式的前半部分

 

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

re.findall(r"\w+\.txt ", my_text)
Python 中的正则表达式

负前瞻(Negative look-ahead)

  • 非捕获组
  • 检查表达式前半部分后面是否跟随前瞻表达式
  • 仅返回表达式的前半部分

 

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

re.findall(r"\w+\.txt(?!\stransferred)", my_text)
['keywords.txt']
Python 中的正则表达式

后行断言(Look-behind)

  • 非捕获组
  • 获取前面有或没有特定模式的所有匹配
  • 返回后行断言后的模式

Python 中的正则表达式

正后行断言(Positive look-behind)

  • 非捕获组
  • 获取前面由特定模式所引导的所有匹配
  • 返回后行断言后的模式

 

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

re.findall(r" \w+\s\w+", my_text)
Python 中的正则表达式

正后行断言(Positive 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']
Python 中的正则表达式

负后行断言(Negative 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']
Python 中的正则表达式

¡Vamos a practicar!

Python 中的正则表达式

Preparing Video For Download...