在学习parsec时,我发现自己经常跳过文本的大部分内容。 例如:
manyTill anyChar (try $ string "Content-Type: text/plain;")
这在我的parsec练习中非常常见。我一直这样做。 我通常跳过大块文本来获取由字符串或字符标识的文本的其他部分。
我只是想知道以上这条线是否有效? “manyTill”函数收集我想要跳过的所有不需要的文本。即使我没有返回它,“manyTill”仍然将它处理成一个列表。我期待有类似“skipManyTill”功能或类似功能的东西,它会忽略文本块,直到它碰到某个令牌。
我是否感到困惑或上述行是跳绳的常用方法?有没有更好的方法呢?
感谢。
答案 0 :(得分:1)
在这个特定的例子中,我建议将多阶段padre更加惯用。将所有HTTP标头解析为Map ByteString ByteString
,然后将其解码为最终数据结构。