Chuyển đến nội dung chính
Mô-đun 3 · Bài học 2 trong tổng số 410/32 trong khóa học~10 min
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ự.

Code
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":

Code
\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ập thể dục#regex.m3.l2.e1
Nỗ lực: 0Đang tải…

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`.

Đang tải trình chỉnh sửa…
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ập thể dục#regex.m3.l2.e2
Nỗ lực: 0Đang tải…

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.

Đang tải trình chỉnh sửa…
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

tập thể dục#regex.m3.l2.e3
Nỗ lực: 0Đang tải…

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`).

Đang tải trình chỉnh sửa…
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ử