Курс по 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   |   Котви