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

Решение: http или https

Вот один из возможных вариантов решения задачи.

Код

say 'https://example' ~~ / http | https /;

🦋 Исходный код можно найти в файле http-or-https.raku.

Вывод

「https」

Комментарии

  1. В начале строки подошли бы и http, и https, но | использует сопоставление по самому длинному токену.

  2. Поэтому побеждает более длинное https, хотя http записан первым.

Другой вариант решения

Эти два слова различаются лишь конечной s, поэтому вместо альтернативы можно сделать эту s необязательной с помощью квантификатора ?:

say 'https://example' ~~ / https? /; # 「https」

Знак ? связывается только с тем атомом, который стоит прямо перед ним, — с буквой s, — а не со всем словом, поэтому https? читается как http, за которым идёт необязательная s. Один этот шаблон подходит и для http, и для https, и, будучи жадным, он берёт s всякий раз, когда она есть.

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

http или https   |   Якоря