Перейти к основному содержимому
Модуль 3 · Урок 2 из 410/32 в курсе~10 min
Уроки модуля (2/4)

Границы слов: `\b` `\B`

\b — это привязка границы слова: она соответствует позиции между словесный символ (\w) и несловный символ (\W или начало/конец строка). Как и ^ и $, он НЕ использует символы.

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

gatto соответствует только целому слову: внутри gattina последовательность gatto отсутствует (отсутствует последний o), но он не соответствует gatti либо потому, что последний i является словесным символом.

\B — это противоположное: оно соответствует позиции, которая НЕ является словом. граница.

Нахождение «целых слов»

Наиболее типичное использование \b — «сопоставлять слово X только в изолированном виде, а не в изолированном виде». как часть другого слова":

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

Границы слов и символы, не являющиеся словами

Граница \\b не соответствует никакому физическому символу; это проверка позиции. Между символом \\w и символом, отличным от \\w (или началом/концом текста), существует граница \\b. Отрицание \\B утверждает, что текущая позиция не является границей слова.

Попробуйте это

Упражнение#regex.m3.l2.e1
Попыток: 0Загрузка…

Найдите каждое вхождение всего слова `cat` (без учета регистра). Он НЕ должен соответствовать «категории», «объединению», «разбросу».

Загрузка редактора…
Показать подсказку

Оберните 'cat' между двумя \\b: границей в начале И границей в конце.

Решение доступно после 3 попыток

Обзор упражнения

Упражнение#regex.m3.l2.e2
Попыток: 0Загрузка…

Найдите каждое целое число, которое НЕ является частью идентификатора (например, `42` да, но ни `var42`, ни `42abc`). Используйте `\\b` с обеих сторон.

Загрузка редактора…
Показать подсказку

\\b\\d+\\b соответствует только «изолированным» последовательностям цифр. В abc42 перед цифрой 42 стоит буква «c» (слово).

Решение доступно после 3 попыток

Дополнительная задача

Упражнение#regex.m3.l2.e3
Попыток: 0Загрузка…

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

Загрузка редактора…
Показать подсказку

Используйте \\b в начале cat (граница слова) и \\B в конце (граница без слова).

Решение доступно после 3 попыток