Разница между одинарной и двойной трубой в Raku Regex (| Vs ||)


9

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

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

Ответы:


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

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.