Bài học theo mô-đun (2/4)
Ranh giới từ: `\b` `\B`
\b là neo liên kết ranh giới từ: nó khớp với vị trí giữa một
ký tự từ (\w) và ký tự không phải từ (\W hoặc phần đầu/cuối của
chuỗi). Giống như ^ và $, nó KHÔNG tiêu thụ ký tự.
Pattern: \bgatto\b
Sample: Il gatto e la gattina giocano.
^^^^^gatto chỉ khớp với toàn bộ từ: bên trong gattina chuỗi
gatto không có ở đó (thiếu o cuối cùng), nhưng nó sẽ không khớp
gatti vì i cuối cùng là một ký tự từ.
\B là ngược lại: nó khớp với một vị trí KHÔNG phải là một từ
ranh giới.
Tìm "toàn bộ từ"
Cách sử dụng điển hình nhất của \b là "chỉ ghép từ X khi bị cô lập chứ không phải
như một phần của từ khác":
\bif\b matches 'if' but not 'sniff', 'gift', 'lifetime'.Ranh giới từ và ký tự không phải từ
Ranh giới \\b không khớp với bất kỳ ký tự vật lý nào; đó là một bài kiểm tra vị trí. Có ranh giới \\b giữa ký tự \\w và ký tự không phải \\w (hoặc ký tự bắt đầu/kết thúc văn bản). Phủ định \\B khẳng định rằng vị trí hiện tại không phải là ranh giới từ.
Hãy thử nó
Tìm mọi lần xuất hiện của toàn bộ từ `cat` (không phân biệt chữ hoa chữ thường). Nó KHÔNG được khớp với `category`, `concatenate`, `scatter`.
Hiển thị gợi ý
Bọc 'cat' giữa hai \\b: ranh giới ở đầu VÀ ranh giới ở cuối.
Giải pháp khả dụng sau 3 lần thử
Xem lại bài tập
Tìm mọi số nguyên KHÔNG phải là một phần của mã định danh (ví dụ: `42` có, nhưng không phải `var42` hay `42abc`). Sử dụng `\\b` ở cả hai bên.
Hiển thị gợi ý
\\b\\d+\\b chỉ khớp với các chuỗi chữ số 'bị cô lập'. abc42 có 'c' (từ) trước 42.
Giải pháp khả dụng sau 3 lần thử
Thử thách bổ sung
Find the sequence `cat` only if it starts a longer word, excluding when it appears as a whole word or at the end (e.g. match `catalog` but not `wildcat` or isolated `cat`).
Hiển thị gợi ý
Sử dụng \\b ở đầu cat (ranh giới từ) và \\B ở cuối (ranh giới không phải từ).
Giải pháp khả dụng sau 3 lần thử