相关疑难解决方法(0)

如何在不消耗的情况下使Attoparsec解析器成功(如parsec lookAhead)

我写了一个快速的attoparsec解析器来遍历一个aspx文件并删除所有的样式属性,它的工作正常,除了它的一部分,我无法弄清楚如何使它成功匹配>而不消耗它.

这就是我所拥有的:

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
Run Code Online (Sandbox Code Playgroud)

我理解这部分是因为我在everythingButStyles中如何使用manyTill,这就是我如何积极地放弃所有样式的东西,但是styleWithoutQuotes我需要它来匹配">"作为结束,但不要消耗它,在parsec中我会做,lookAhead ">"但我不能在attoparsec做到这一点.

parsing haskell attoparsec

5
推荐指数
2
解决办法
2215
查看次数

标签 统计

attoparsec ×1

haskell ×1

parsing ×1