9

Raku 的正则表达式中有两种类型的交替:|||。有什么区别 ?

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

1 回答 1

12
  • || _ 是旧的交替行为:尝试从第一个声明到最后一个声明的交替

  • | 尝试从最长到最短的声明性原子交替。它被称为最长令牌匹配规范策略。

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

这篇文章中更详细的答案

于 2020-03-19T02:00:47.020 回答