Курс Raku / Регулярні вирази та граматики / Регулярні вирази / Альтернативи / Вправи / 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   |   Якорі