Perbedaan antara pipa tunggal dan pipa ganda di Raku Regex (| Vs ||)

9

Ada dua jenis pergantian di regex Raku: the |dan ||. Apa bedanya ?

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

Jawaban:

12
  • The || adalah perilaku pergantian yang lama: coba pergantian dari yang pertama dinyatakan ke terakhir

  • The | coba pergantian dari atom deklaratif terpanjang ke yang terpendek . Ini disebut strategi Spec Matching Token Terpanjang .

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

Jawaban lebih rinci dalam posting ini

Tinmarino
sumber