Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách hoạt động của \B (non-word boundary) trong regex Python

\b khớp vị trí ranh giới từ (word boundary) — nơi một bên là ký tự word (\w: chữ, số, underscore), bên kia không phải.

\B ngược lại: khớp mọi vị trí không phải ranh giới từ.

Ví dụ

import re
result1 = re.findall(r'\Bcat', 'certificate')
result2 = re.findall(r'\Bcat', 'tomcat')
result3 = re.findall(r'\Bcat', 'catfish')
print(result1, result2, result3)

Kết quả

['cat'] ['cat'] []

Giải thích:

  • certificate: "cat" ở giữa từ → \B khớp trước "c".
  • tomcat: "cat" ở cuối từ nhưng trước đó là "m" (word char) → \B khớp.
  • catfish: "cat" ở đầu từ → vị trí trước "c" là ranh giới từ (\b), nên \B không khớp.