Haskell:只要有两个相邻的撇号,我怎么能分割一个字符串?

ves*_*len 1 string haskell split

我正在做一些字符串工作,给我一些重复的单引号字符串,如:

all''your''base''belong
Run Code Online (Sandbox Code Playgroud)

我想在撇号之间分隔字符串以获取列表:

all'
'your'
'base'
'belong
Run Code Online (Sandbox Code Playgroud)

或者,更好的是,它会修剪撇号的每个单词,除非它只在末尾有一个撇号,所以最终的结果是:

all'
your
base
belong
Run Code Online (Sandbox Code Playgroud)

我怎么能干净利落地去做呢?

Cir*_*dec 6

根据您正在做的事情,制作真正的解析器可能更容易.

{-# LANGUAGE FlexibleContexts #-}

import Text.Parsec
import Text.Parsec.Char

singleQuotedStrings = many (char '\'' *> many letter <* char '\'')

main = print $ parse singleQuotedStrings [] "'all''your''base''belong'"
Run Code Online (Sandbox Code Playgroud)