【发布时间】:2018-03-21 04:47:28
【问题描述】:
我真的不是正则表达式的明星,尤其是 Haskell,甚至在阅读了一些教程之后。
我有一个这样的数字列表:
let x = [1, 2, 3.5]
我的目标是从此输入中获得字符串 "1.0 2.0 3.5"。
我的想法是使用正则表达式。但是我使用的方式很乏味。首先,我愿意
let xstr = show x
然后我像这样删除第一个括号:
import Text.Regex
let regex1 = mkRegex "\\["
let sub1 = subRegex regex1 xstr ""
-- this gives "1.0,2.0,3.5]"
然后我同样删除第二个括号:
let regex2 = mkRegex "\\]"
let sub2 = subRegex regex2 sub1 ""
最后我删除逗号并用空格替换它们:
let regex3 = mkRegex ","
let sub3 = subRegex regex3 sub2 " "
这会根据需要提供"1.0 2.0 3.5"。
请问你有更好的方法吗?
我总是有 3 个元素的列表,所以这种方法并非不切实际,但它既乏味又不优雅。我什至不知道如何一次删除两个括号。
【问题讨论】: