Границы слов

Якорная привязка не ограничивается концами строки. Якорь границы слова, \b, совпадает на любой границе слова. Таким образом, /\bfred\b/ совпадет со словом fred, но не совпадает с frederick, alfred или manfred mann. Происходящее немного напоминает режим поиска целых слов2 в команде поиска текстовых редакторов. Впрочем, это не те осмысленные слова, к которым мы с вами привыкли; здесь имеются в виду последовательности символов, состоящие из обычных букв, цифр и символов подчеркивания. Якорь \b совпадает с началом или концом группы символов \w. Каждое «слово» подчеркнуто серой линией, а стрелки обозначают позиции, в которых совпадет \b. Количество границ слов в заданной строке всегда четно, поскольку у каждого начала слова имеется парный конец слова.

«Словами» считаются серии букв, цифр и символов подчеркивания; иначе говоря, словом считается последовательность, совпадающая с /\w+/. Показанное предложение содержит пять слов: That, s, a, word и boundary. Обратите внимание: кавычки вокруг word не изменяют границ слов, так как последние состоят из символов \w. Каждая стрелка указывает либо в начало, либо в конец серой линии, так как якорь границы слова \b совпадает только в начале или в конце группы символов слова.


Якорь границы слова предотвратит случайное нахождение cat в delicatessen, dog в boondoggle или fish в selfishness. Иногда используется только один якорь границы слова, например шаблон /\bhunt/ найдет такие слова, как hunt, hunting или hunter, но не shunt, а шаблон /stоne\b/ – такие слова, как sandstone или flintstone, но не capstones. Инвертированный якорь границы слова \B совпадает в любой точке, где не совпадет \b. Таким образом, шаблон /\bsearch\B/ совпадет в строках searches, searching и searched, но не в search или researching.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Perl на эту тему:
Автоматические переменные совпадения
Добавление пропусков (/x)
Другие модификаторы
Жизненный цикл переменных частичных совпадений
Именованное сохранение