Raku Regex 中单管道和双管道的区别(| Vs ||)
Difference between single pipe and double pipe in Raku Regex (| Vs ||)
Raku 的正则表达式中有两种交替类型:|
和 ||
。有什么区别?
say 'foobar' ~~ / foo || foobar / # 「foo」
say 'foobar' ~~ / foo | foobar / # 「foobar」
|| 是旧的交替行为:尝试从第一个声明到最后一个声明的交替
| try alternation from the longest to the shortest declarative atom. It is called the Longest Token Matching Spec 策略。
say 'foobar' ~~ / foo || foobar / # 「foo」 is the first declared
say 'foobar' ~~ / foo | foobar / # 「foobar」 is the longest token
更详细的答案在此
Raku 的正则表达式中有两种交替类型:|
和 ||
。有什么区别?
say 'foobar' ~~ / foo || foobar / # 「foo」
say 'foobar' ~~ / foo | foobar / # 「foobar」
|| 是旧的交替行为:尝试从第一个声明到最后一个声明的交替
| try alternation from the longest to the shortest declarative atom. It is called the Longest Token Matching Spec 策略。
say 'foobar' ~~ / foo || foobar / # 「foo」 is the first declared
say 'foobar' ~~ / foo | foobar / # 「foobar」 is the longest token
更详细的答案在此