Я знаю, что у меня уже есть функция Haskell Data.ByteString.Lazy для разделения CSV на один символ, например:
split :: Word8 -> ByteString -> [ByteString]
Но я хочу разбить на многосимвольную ByteString (например, разбить на String вместо Char):
split :: ByteString -> ByteString -> [ByteString]
У меня есть многосимвольные разделители в CSV-подобном текстовом файле, который мне нужно проанализировать, и отдельные символы сами появляются в некоторых полях, поэтому выбор только одного символа-разделителя и отбрасывание других загрязнит импорт данных.
У меня были некоторые идеи о том, как это сделать, но они кажутся довольно хакерскими (например, взять три слова Word8, проверить, являются ли они комбинацией разделителей, начать новое поле, если они есть, выполнить рекурсию дальше), и я думаю, что я бы все равно изобретать велосипед. Есть ли способ сделать это, не перестраивая функцию с нуля?