haskell - 完全按照 Haskell 中的方式读取字符串
问题描述
我的程序是这样的:
func = do
text <- getLine
return text
如果我阅读 line \123\456
,结果自然是\\123\\456
. 我怎样才能获得 \123\456
结果?
解决方案
根据评论中的讨论,您似乎想将字符串解析为字符串文字,但它没有被引号包围。
我们可以利用read :: Read a => String -> a
这里的 for a string 解析它,就好像它是字符串的字符串文字一样。唯一的问题是这个字符串文字被双引号 ( "
) 包围。
因此,我们可以添加这些引号,并使用:
read ('"' : text ++ "\"") :: String
然而,并非每个字符串text
本身都是有效的字符串文字,因此上述方法可能会失败。例如,如果text
本身包含双引号,则其前面不直接带有反斜杠 ( \
)。
推荐阅读
- java - 在数据绑定布局中使用子组件时,如何让子组件正确编译?
- excel - Clas 变量声明不适用于 VBA 中的动态类加载,
- uml - 识别投票网络应用程序中的用例
- bash - 如何在shell中将变量转换为字符串
- javascript - setInterval/setTimeout 可能会导致页面重新加载
- vue.js - 发布到后端但请求始终为空(vue 到节点)
- node.js - 如何从服务器更改我的 HTML 中的标签?
- bash - 按名称对文件使用 awk 的 gsub
- r - 在数据框上运行 T.test 并将结果按 col1 和 col3 分组
- java - 字段选择错误 thymeleaf 选择器绑定