Курс языка программирования Raku / Регулярные выражения и грамматики / Регулярные выражения / Наречия
Значимые пробелы
Внутри регулярного выражения пробелы обычно игнорируются — они нужны
лишь для удобочитаемости шаблона. Поэтому /foo bar/
совпадает с foobar. Но иногда пробел в шаблоне
действительно должен означать «здесь есть пробельный символ». Ровно это
и делает наречие :s (сокращение от :sigspace,
«значимый пробел»):
say so 'foo bar' ~~ /:s foo bar/; # True
say so 'foobar' ~~ /:s foo bar/; # FalseС :s пробел между foo и bar в
шаблоне требует пробельного символа между этими словами в строке.
Годятся один или несколько пробелов (или табуляций), поэтому вереница
пробелов в 'foo bar' подходит.
Значимые пробелы становятся особенно важны в грамматиках, где они
позволяют писать шаблоны, читающиеся как тот язык, который вы
разбираете. Вы встретите их снова как различие между token
и rule.
Практика
Пройдите 1 тест по содержанию этой темы.
Навигация по курсу
← Глобальное сопоставление | Тест — Наречия →
💪 Или перейдите сразу к упражнениям этого
раздела.