我知道我已经有哈斯克尔Data.ByteString.Lazy的函数,在一个单一的字符,如拆分CSV:
split :: Word8 -> ByteString -> [ByteString]
但我想拆就多字符的字节字符串(如一个字符串,而不是一个字符分割):
split :: ByteString -> ByteString -> [ByteString]
我有我需要解析CSV般的文本文件,多字符分隔符,并且单个字符本身出现在一些领域,所以选择只有一个分隔符,并丢弃别人会污染数据导入。
我对如何做到这一点的一些想法,但他们似乎有种哈克(如取三个Word8s,测试,如果他们是分隔组合,开始一个新的领域,如果他们是,递归进一步),和我想象我会是无论如何重塑车轮。 有没有办法做到这一点无需从头开始重建的功能?