Raku Regexのシングルパイプとダブルパイプの違い(| Vs ||)


9

Rakuの正規表現には、|との2つのタイプの代替があり||ます。違いはなんですか ?

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

この投稿の詳細な回答

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.