我知道我已经有了Haskell Data.ByteString.Lazy函数来在单个字符上拆分CSV,例如:
split :: Word8 -> ByteString -> [ByteString]但我想在多字符ByteString上拆分(就像在字符串上拆分而不是在字符上拆分):
split :: ByteString -> ByteString -> [ByteString]我在一个类似csv的文本文件中有多个字符分隔符,需要对其进行解析,并且各个字符本身会出现在某些字段中,因此只选择一个分隔符字符并丢弃其他分隔符将会影响数据导入。
我有一些关于如何做到这一点的想法,但它们看起来有点老生常谈(例如,取三个Word8s,测试它们是否是分隔符组合,如果是,则开始一个新字段,进一步递归),我想我无论如何都会重新发明一个轮子。有没有一种方法可以做到这一点而不用从头开始重新构建函数?
发布于 2009-09-09 11:24:18
字节串breakSubstring的文档包含一个函数,它可以执行您所要求的操作:
tokenise x y = h : if null t then [] else tokenise x (drop (length x) t)
where (h,t) = breakSubstring x y发布于 2009-09-09 10:48:36
bytestring中有几个用于拆分子序列的函数:
breakSubstring :: ByteString -> ByteString -> (ByteString,ByteString)还有一个
https://stackoverflow.com/questions/1398322
复制相似问题