Курс языка программирования 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 тест по содержанию этой темы.
Навигация по курсу
← Альтернативы | Тест — Группировка →
💪 Или перейдите сразу к упражнениям этого
раздела.