Разница между одинарной и двойной трубой в Raku Regex (| Vs ||) - PullRequest
9 голосов
/ 19 марта 2020

В регулярном выражении Раку есть два типа чередования: | и ||. В чем разница?

say 'foobar' ~~ / foo || foobar /  # 「foo」
say 'foobar' ~~ / foo | foobar /   # 「foobar」

1 Ответ

12 голосов
/ 19 марта 2020
  • || - это старое поведение чередования: попробуйте чередование от первого, объявленного до последнего

  • | попробуйте чередование от самого длинного к самому короткому декларативному atom . Он называется стратегией Longest Token Matching Spe c.

say 'foobar' ~~ / foo || foobar /  # 「foo」 is the first declared
say 'foobar' ~~ / foo | foobar /   # 「foobar」 is the longest token

Более подробный ответ в этом сообщении

...