4
基本上我试图将String
拆分为[[String]]
,然后将结果连接回来,但在结果列表中保留分隔符(甚至连续重复)。拆分字符串,同时保持分隔符Haskell
喜欢的东西下面的这类作品,但分隔符被碾碎成一个空间,而不是保留了所有三个空间的
unwords . map (\x -> "|" ++ x ++"|") . words $ "foo bar"
-- "|foo| |bar|"
理想的情况下,我能得到这样的:
"|foo|| ||bar|" -- or
"|foo| |bar|"
我只是我不知道如何保留分隔符,我看到的所有分割函数都将分隔符从结果列表中删除,我可以自己写一个分隔符,但它看起来像是一个标准库中的东西,在这一点上,我希望学习比Basi更多的东西其中包括熟悉更多口语化的做事方式。
我想我正在寻找像一些功能:
splitWithDelim :: Char -> String -> [String]
splitWithDelim "foo bar" -- ["foo", " ", " ", " ", "bar"]
或者也许是最好在这里使用正则表达式?
谢谢,这看起来很有希望。有点后续跟进,有人指出,这是不可移植的和实验性的,是刚刚过时或过于保守,还是有一个更规范的图书馆? – BWStearns
@BWStearns我认为“便携性”和“稳定性”字段是创建包时经常设置的字段,然后人们往往会忘记它们在那里并且从不更新它们。 'split'包现在已经风行了,而且绝对没有什么比较正规的。 –