在Haskell中使用Filter / Elem对Lazy Byte字符串

时间:2016-03-29 17:17:07

标签: haskell

我正在尝试使用Scalpel库抓取一个网站,并返回了一个我无法过滤的字节字符串列表。

我有一个Lazy Byte Strings列表,例如:

 ["<a href=\"?ep=17&amp;fmt=0\">Jerk</a>", "<a href=\"?fmt=0&amp;yr=1997\" onmouseover=\"img_hov('t1997')\" onmouseout=\"img_norm('t1997')\"><img src=\"image/1997.gif\" alt=\"1997\" width=\"84\" height=\"43\" name=\"t1997\" border=\"0\"></a>"]

我希望过滤此列表以仅查找包含&#39; ep =&#39;的延迟字节字符串。

我还需要&amp;字符串中的符号不​​是&amp; amp

1 个答案:

答案 0 :(得分:1)

通常的filter非常适合过滤列表。用它!不幸的是,bytestring包没有提供很好的工具来查找惰性ByteString的任意子串,尽管它确实提供了严格的子串。作者可能已经决定在懒惰的情况下使这些函数有效地工作太难了。将每个惰性ByteString转换为严格ByteStringString可能最简单,然后使用Data.ByteStringData.List中的工具执行搜索。很难理解你对&amp;的看法,所以你必须澄清一下。