Границы слов в регулярных выражениях JavaScript: Якорь \b
Введение в границы слов
В JavaScript регулярных выражениях якорь \b используется для поиска границ слов. Граница слова — это позиция между символом слова (обычно \w, который включает [a-zA-Z0-9_]) и несимволом слова (любым другим символом). Это позволяет точно сопоставлять целые слова и может быть особенно полезно для задач поиска, замены или проверки конкретных словесных шаблонов в тексте.
Использование якоря \b
Якорь \b — это утверждение нулевой ширины, которое совпадает с позициями, где символ слова находится рядом с несимволом слова. Он не потребляет символы при сопоставлении. Это может происходить в начале или в конце слова.
Пример: Поиск целых слов
Пояснение:
- Регулярное выражение
/\bcat\b/находит слово «cat» как целое слово. - В строке
'The cat is here.'слово «cat» является отдельным словом, поэтому результатtrue. - В строке
'The caterpillar is here.'«cat» является частью слова «caterpillar», поэтому результатfalse.
Пример: Поиск целых слов в тексте
Пояснение:
- Регулярное выражение
/\bcat\b/gнаходит все вхождения слова «cat» как целого слова в тексте. - Оно находит только «cat», а не «scatter», «caterpillar» или «catfish», поскольку в этих контекстах «cat» не является отдельным словом.
- Результатом является массив, содержащий
["cat"].
Практическое применение
Валидация полей ввода
Границы слов могут быть полезны при валидации полей ввода, где требуется точное совпадение целых слов.
Пояснение:
- Регулярное выражение
/^\w+$/гарантирует, что ввод представляет собой одно слово без пробелов. - Символ
^указывает на начало строки, а$— на конец. Поскольку\wсовпадает только со словами символами,^и$неявно устанавливают границы слов, делая\bздесь избыточным. \w+совпадает с одним или несколькими символами слова (включая буквы, цифры и знаки подчеркивания).'user123'совпадает, так как это одно слово без пробелов.'user 123'не совпадает, так как содержит пробел, который разрывает последовательность символов слова.- Обратите внимание, что
\wвключает знаки подчеркивания, что может повлиять на логику валидации, если вы планируете их исключать.
Извлечение слов из предложения
Вы можете извлекать конкретные слова из предложения, используя границы слов.
Пояснение:
- Шаблон регулярного выражения
/\btest\w*\b/giнаходит любое слово, начинающееся с «test». - Флаг
gгарантирует возврат всех совпадений в строке. - Флаг
iделает совпадение регистронезависимым, поэтому оно находит как «test», так и «Testing». - Результатом является
["test", "Testing"], поскольку оба слова начинаются с «test» и за ними следуют ноль или более символов слова.
Комбинирование границ слов с другими шаблонами
Границы слов можно комбинировать с другими шаблонами регулярных выражений для более сложных совпадений.
Пример: Поиск слов с префиксом
Пояснение:
- Регулярное выражение
/\bpre\w*\b/gнаходит слова, начинающиеся с префикса «pre». \bpreуказывает на границу слова, за которой следует «pre».\w*совпадает с нулем или более символами слова.\bуказывает на границу слова в конце.- Результатом является массив, содержащий
["preheat", "prefix", "prepare", "pressure"].
Пример: Поиск слов с определенным суффиксом
Пояснение:
- Регулярное выражение
/\w+ing\b/gнаходит слова, заканчивающиеся на «ing». \w+совпадает с одним или несколькими символами слова.ing\bнаходит «ing», за которым следует граница слова.- Результатом является массив, содержащий
["running", "walking", "talking", "thinking"].
INFO
Когда вам нужно найти целые слова или убедиться, что слова не являются частью более крупных строк, используйте якорь \b для точного определения границ слов
Используйте \b для точного совпадения слов
Пример: Точное совпадение слов
Пояснение:
- Регулярное выражение
/\bdog\b/gнаходит слово «dog» как целое слово. - Оно не находит «dogs», поскольку «dog» не является отдельным словом в этом контексте.
- Результатом является массив, содержащий
["dog"].
Заключение
Якорь \b в регулярных выражениях JavaScript — это мощный инструмент для поиска границ слов. Используя этот якорь, вы можете создавать точные и эффективные шаблоны для поиска, замены и проверки слов в тексте. Независимо от того, работаете ли вы над функцией поиска, валидацией данных или обработкой текста, понимание и использование границ слов может значительно расширить ваши возможности работы с регулярными выражениями.
Практика
В чём используется граница слова '\b' в JavaScript?