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


9

У регексу Раку існує два типи чергування: |і ||. Яка різниця ?

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

Відповіді:


12
  • || це стара поведінка чергування: спробуйте чергування від першого оголошеного до останнього

  • | спробуйте чергування від найдовшого до найкоротшого декларативного атома . Вона називається стратегією найбільшого відповідності токену .

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.