ขอบเขตคำ \b จับคู่ตำแหน่งที่ด้านหนึ่งเป็นอักขระคำ (word character: ตัวอักษร ตัวเลข หรือ underscore) และอีกด้านหนึ่งไม่ใช่
\B จับคู่ ทุกตำแหน่งที่ \b ไม่จับคู่ กล่าวคือ ตำแหน่งที่ทั้งสองด้านเป็นอักขระคำ หรือทั้งสองด้านไม่ใช่อักขระคำ
ตัวอย่าง: ทดสอบ \Bcat
import re result1 = re.findall(r'\Bcat', 'certificate') result2 = re.findall(r'\Bcat', 'tomcat') result3 = re.findall(r'\Bcat', 'catfish') print(result1, result2, result3)
ผลลัพธ์
['cat'] ['cat'] []
คำอธิบาย
certificate: "cat" อยู่กลางคำ (รอบๆ เป็นอักขระคำ) → \B จับคู่ได้tomcat: "cat" อยู่ท้ายคำ แต่ตัวก่อนหน้า 'm' เป็นอักขระคำ → \B จับคู่ได้catfish: "cat" อยู่ต้นคำ ตัวหลัง 'f' เป็นอักขระคำ แต่ \B ตรงหน้า 'c' ไม่จับคู่ เพราะตำแหน่งนั้นเป็น \b (ขอบเขตคำ)