Курс по 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 тест върху съдържанието на тази тема.

Навигация в курса

Глобално съпоставяне   |   Тест — Наречия


💪 Или преминете направо към упражненията в този раздел.