Chuyển đến nội dung chính
eLearner.app
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 is a word boundary anchor: it matches the position between a word character (\w) and a non-word character (\W, or the start/end of the string). Like ^ and $, it does NOT consume characters.

Code
Pattern: \bgatto\b
Sample:  Il gatto e la gattina giocano.
            ^^^^^

gatto matches only as a whole word: inside gattina the sequence gatto is not there (the final o is missing), but it would not match gatti either because the final i is a word character.

\B is the opposite: it matches a position that is NOT a word boundary.

Finding "whole words"

The most typical use of \b is "match the word X only when isolated, not as part of another word":

Code
\bif\b   matches 'if' but not 'sniff', 'gift', 'lifetime'.

Word boundaries and non-word characters

The boundary \\b does not match any physical character; it is a position test. A \\b boundary exists between a \\w character and a non-\\w character (or start/end of text). The negation \\B asserts that the current position is not a word boundary.

Try it

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

Find every occurrence of the whole word `cat` (case-insensitive). It must NOT match `category`, `concatenate`, `scatter`.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Wrap 'cat' between two \\b: boundary at the start AND boundary at the end.

Giải pháp khả dụng sau 3 lần thử

Review exercise

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

Find every integer that is NOT part of an identifier (e.g. `42` yes, but neither `var42` nor `42abc`). Use `\\b` on both sides.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

\\b\\d+\\b matches only 'isolated' digit sequences. abc42 has 'c' (word) before the 42.

Giải pháp khả dụng sau 3 lần thử

Additional challenge

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 ý

Use \b at the start of cat (word boundary) and \B at the end (non-word boundary).

Giải pháp khả dụng sau 3 lần thử