Lookaround

Regular Expressions in Python

Maria Eugenia Inzaugarat

Data Scientist

Nhìn quanh (Lookaround)

  • Cho phép xác nhận mẫu con ở trước hoặc sau mẫu chính

   

Regular Expressions in Python

Nhìn quanh (Lookaround)

  • Cho phép xác nhận mẫu con ở trước hoặc sau mẫu chính

 

Tại vị trí hiện tại trong tiến trình khớp, hãy nhìn trước hoặc sau và kiểm tra xem một mẫu có khớp hay không trước khi tiếp tục.

Regular Expressions in Python

Look-ahead

  • Nhóm không bắt
  • Kiểm tra phần đầu biểu thức được theo sau hoặc không bởi biểu thức lookahead
  • Chỉ trả về phần đầu của biểu thức

Regular Expressions in Python

Positive look-ahead

  • Nhóm không bắt
  • Kiểm tra phần đầu biểu thức được theo sau bởi biểu thức lookahead
  • Chỉ trả về phần đầu của biểu thức

 

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

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

Positive look-ahead

  • Nhóm không bắt
  • Kiểm tra phần đầu biểu thức được theo sau bởi biểu thức lookahead
  • Chỉ trả về phần đầu của biểu thức

 

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

Negative look-ahead

  • Nhóm không bắt
  • Kiểm tra phần đầu biểu thức không được theo sau bởi biểu thức lookahead
  • Chỉ trả về phần đầu của biểu thức

 

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

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

Negative look-ahead

  • Nhóm không bắt
  • Kiểm tra phần đầu biểu thức không được theo sau bởi biểu thức lookahead
  • Chỉ trả về phần đầu của biểu thức

 

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

  • Nhóm không bắt
  • Lấy các khớp đứng trước hoặc không trước một mẫu cụ thể
  • Trả về mẫu sau biểu thức look-behind

Regular Expressions in Python

Positive look-behind

  • Nhóm không bắt
  • Lấy tất cả khớp được đứng trước bởi một mẫu cụ thể
  • Trả về mẫu sau biểu thức 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

Positive look-behind

  • Nhóm không bắt
  • Lấy tất cả khớp được đứng trước bởi một mẫu cụ thể
  • Trả về mẫu sau biểu thức 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

Negative look-behind

  • Nhóm không bắt
  • Lấy tất cả khớp không được đứng trước bởi một mẫu cụ thể
  • Trả về mẫu sau biểu thức 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

Ayo berlatih!

Regular Expressions in Python

Preparing Video For Download...