Перейти к содержимому

Границы слов в регулярных выражениях JavaScript: Якорь \b

Введение в границы слов

В JavaScript регулярных выражениях якорь \b используется для поиска границ слов. Граница слова — это позиция между символом слова (обычно \w, который включает [a-zA-Z0-9_]) и несимволом слова (любым другим символом). Это позволяет точно сопоставлять целые слова и может быть особенно полезно для задач поиска, замены или проверки конкретных словесных шаблонов в тексте.

Использование якоря \b

Якорь \b — это утверждение нулевой ширины, которое совпадает с позициями, где символ слова находится рядом с несимволом слова. Он не потребляет символы при сопоставлении. Это может происходить в начале или в конце слова.

Пример: Поиск целых слов


Output appears here after Run.

Пояснение:

  • Регулярное выражение /\bcat\b/ находит слово «cat» как целое слово.
  • В строке 'The cat is here.' слово «cat» является отдельным словом, поэтому результат true.
  • В строке 'The caterpillar is here.' «cat» является частью слова «caterpillar», поэтому результат false.

Пример: Поиск целых слов в тексте


Output appears here after Run.

Пояснение:

  • Регулярное выражение /\bcat\b/g находит все вхождения слова «cat» как целого слова в тексте.
  • Оно находит только «cat», а не «scatter», «caterpillar» или «catfish», поскольку в этих контекстах «cat» не является отдельным словом.
  • Результатом является массив, содержащий ["cat"].

Практическое применение

Валидация полей ввода

Границы слов могут быть полезны при валидации полей ввода, где требуется точное совпадение целых слов.


Output appears here after Run.

Пояснение:

  • Регулярное выражение /^\w+$/ гарантирует, что ввод представляет собой одно слово без пробелов.
  • Символ ^ указывает на начало строки, а $ — на конец. Поскольку \w совпадает только со словами символами, ^ и $ неявно устанавливают границы слов, делая \b здесь избыточным.
  • \w+ совпадает с одним или несколькими символами слова (включая буквы, цифры и знаки подчеркивания).
  • 'user123' совпадает, так как это одно слово без пробелов.
  • 'user 123' не совпадает, так как содержит пробел, который разрывает последовательность символов слова.
  • Обратите внимание, что \w включает знаки подчеркивания, что может повлиять на логику валидации, если вы планируете их исключать.

Извлечение слов из предложения

Вы можете извлекать конкретные слова из предложения, используя границы слов.


Output appears here after Run.

Пояснение:

  • Шаблон регулярного выражения /\btest\w*\b/gi находит любое слово, начинающееся с «test».
  • Флаг g гарантирует возврат всех совпадений в строке.
  • Флаг i делает совпадение регистронезависимым, поэтому оно находит как «test», так и «Testing».
  • Результатом является ["test", "Testing"], поскольку оба слова начинаются с «test» и за ними следуют ноль или более символов слова.

Комбинирование границ слов с другими шаблонами

Границы слов можно комбинировать с другими шаблонами регулярных выражений для более сложных совпадений.

Пример: Поиск слов с префиксом


Output appears here after Run.

Пояснение:

  • Регулярное выражение /\bpre\w*\b/g находит слова, начинающиеся с префикса «pre».
  • \bpre указывает на границу слова, за которой следует «pre».
  • \w* совпадает с нулем или более символами слова.
  • \b указывает на границу слова в конце.
  • Результатом является массив, содержащий ["preheat", "prefix", "prepare", "pressure"].

Пример: Поиск слов с определенным суффиксом


Output appears here after Run.

Пояснение:

  • Регулярное выражение /\w+ing\b/g находит слова, заканчивающиеся на «ing».
  • \w+ совпадает с одним или несколькими символами слова.
  • ing\b находит «ing», за которым следует граница слова.
  • Результатом является массив, содержащий ["running", "walking", "talking", "thinking"].

INFO

Когда вам нужно найти целые слова или убедиться, что слова не являются частью более крупных строк, используйте якорь \b для точного определения границ слов

Используйте \b для точного совпадения слов

Пример: Точное совпадение слов


Output appears here after Run.

Пояснение:

  • Регулярное выражение /\bdog\b/g находит слово «dog» как целое слово.
  • Оно не находит «dogs», поскольку «dog» не является отдельным словом в этом контексте.
  • Результатом является массив, содержащий ["dog"].

Заключение

Якорь \b в регулярных выражениях JavaScript — это мощный инструмент для поиска границ слов. Используя этот якорь, вы можете создавать точные и эффективные шаблоны для поиска, замены и проверки слов в тексте. Независимо от того, работаете ли вы над функцией поиска, валидацией данных или обработкой текста, понимание и использование границ слов может значительно расширить ваши возможности работы с регулярными выражениями.

Практика

В чём используется граница слова '\b' в JavaScript?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.