Eu tento usar uma biblioteca regex-applicative .
Meu código é:
nicBeg = ((psym $ not . isSpace) $> (few anySym <> " adapter ")) *> some anySym
result = match nicBeg "abcd adapter NIC 1"
e vejo que result
é Just "bcd adapter NIC 1"
.
Mas a documentação *>
diz:
*> :: forall (f :: Tipo -> Tipo) a b. Aplicativo f => fa -> fb -> fb
Definido em 'GHC.Base' (base-4.16.4.0)
Ações de sequência, descartando o valor do primeiro argumento.
Então, a questão é: por que a parte "bcd adapter" existe no result
e não apenas "NIC 1" (ele não foi descartado )? É um problema da biblioteca ou estou errado em algum lugar?
PS. A biblioteca tem um conceito de expressões RE "gananciosas".
PS. É fácil obter um resultado esperado: ((psym $ not . isSpace) *> (few anySym <> " adapter ")) *> some anySym
(ou seja, substituir $>
por *>
)