Курс языка программирования Raku / Регулярные выражения и грамматики / Регулярные выражения / Альтернативы

Альтернатива

Разделите два или более варианта вертикальной чертой |. Шаблон совпадает, если совпадает любой из них:

say 'no thanks' ~~ / yes | no /; # 「no」

Шаблон попробовал yes и no; в строке есть no, оно и совпало.

Вариантов можно перечислить сколько угодно:

say 'the sky is blue' ~~ / red | green | blue /; # 「blue」

Вариантами может быть любой подшаблон, а не только буквальные слова: в них могут входить классы символов, квантификаторы и захваты. Чтобы удержать альтернативу как единое целое внутри большего шаблона, сгруппируйте её квадратными скобками [ ], которые группируют без захвата:

say 'cathouse' ~~ / [ cat | dog ] house /; # 「cathouse」

Здесь альтернатива cat | dog — одна единица, за которой должно следовать house.

Практика

Пройдите 1 тест по содержанию этой темы.

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

Альтернативы   |   Тест — Группировка


💪 Или перейдите сразу к упражнениям этого раздела.