[Haskell-cafe] Attoparsec: match many, skipping rest

Ben Franksen ben.franksen at online.de
Fri Apr 17 08:18:25 UTC 2020

Am 11.04.20 um 22:23 schrieb amindfv at gmail.com:
> Say I've got an Attoparsec parser like:
>     p = string "prio:" *> digit
> And some text, e.g.
>     s = "this is just a prio:5 example, I'd prio:6 very much like to prio:4 parse"
> What's the most idiomatic way to apply p to s so that I get out a list ['5', '6', '4']?

If your input language is regular, as it appears to be, you could try
regex-applicative. Your desired combinator could be expressed simply as:

  many_ending_with p = many (many anySym *> p)

without incurring any backtracking cost.


More information about the Haskell-Cafe mailing list