首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拆分ByteString上的ByteString (而不是Word8或Char)

拆分ByteString上的ByteString (而不是Word8或Char)
EN

Stack Overflow用户
提问于 2009-09-09 08:30:50
回答 2查看 1.5K关注 0票数 3

我知道我已经有了Haskell Data.ByteString.Lazy函数来在单个字符上拆分CSV,例如:

代码语言:javascript
复制
split :: Word8 -> ByteString -> [ByteString]

但我想在多字符ByteString上拆分(就像在字符串上拆分而不是在字符上拆分):

代码语言:javascript
复制
split :: ByteString -> ByteString -> [ByteString]

我在一个类似csv的文本文件中有多个字符分隔符,需要对其进行解析,并且各个字符本身会出现在某些字段中,因此只选择一个分隔符字符并丢弃其他分隔符将会影响数据导入。

我有一些关于如何做到这一点的想法,但它们看起来有点老生常谈(例如,取三个Word8s,测试它们是否是分隔符组合,如果是,则开始一个新字段,进一步递归),我想我无论如何都会重新发明一个轮子。有没有一种方法可以做到这一点而不用从头开始重新构建函数?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-09 11:24:18

字节串breakSubstring的文档包含一个函数,它可以执行您所要求的操作:

代码语言:javascript
复制
tokenise x y = h : if null t then [] else tokenise x (drop (length x) t)
    where (h,t) = breakSubstring x y
票数 2
EN

Stack Overflow用户

发布于 2009-09-09 10:48:36

bytestring中有几个用于拆分子序列的函数:

代码语言:javascript
复制
breakSubstring :: ByteString -> ByteString -> (ByteString,ByteString)

还有一个

  • bytestring-csv包,http://hackage.haskell.org/package/bytestring-csv
  • a拆分包:用于字符串的http://hackage.haskell.org/package/split
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1398322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档