Raku Regex中单管和双管之间的差异(| Vs ||)


9

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

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

Answers:


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

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

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

这篇文章中的更详细的答案

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.