Jak sprawić, aby parser Attoparsec odniósł sukces bez zużywania (jak parsec lookAhead)

Napisałem szybki parser attoparsec, aby przechodzić plik aspx i upuszczać wszystkie atrybuty stylu, i działa dobrze, z wyjątkiem jednego fragmentu, w którym nie potrafię określić, jak sprawić, by udało się go dopasować> bez konsumpcji.

Oto co mam:

anyTill = manyTill anyChar
anyBetween start end = start *> anyTill end

styleWithQuotes = anyBetween (stringCI "style=\"") (stringCI "\"")
styleWithoutQuotes = anyBetween (stringCI "style=") (stringCI " " <|> ">")
everythingButStyles = manyTill anyChar (styleWithQuotes <|> styleWithoutQuotes) <|> many1 anyChar

Rozumiem, że jest to częściowo spowodowane tym, jak używam wieluWszystko w styluButStyles, tak aktywnie upuszczam wszystkie elementy stylu na ziemi, ale wstyleWithoutQuotes Potrzebuję go, aby pasował do „>” jako końca, ale nie powinien go konsumować, w parsecie właśnie bym to zrobiłlookAhead ">" ale nie mogę tego zrobić w attoparsec.

questionAnswers(2)

yourAnswerToTheQuestion