删除Erlang中的周围引号

HH-向Carole Baskin道歉

我正在用epgsqlErlang查询数据库。它返回字符串结果,包括引号周围的引号:“ what_was_in_the_row”。在处理结果之前,如何删除这些引号?

帕斯卡

控制格式~p(漂亮的打印)保留有关所打印变量类型的信息。您正在打印一个字符串,用erlang表示,例如,由可打印字符组成的标准整数列表[101,102,103]显示"efg"在外壳中。

如果调用io_lib:format("~p",[[101,102,103]]).,您将得到["\"efg\""]需要解释的结果

  • 方括号表示一个列表,它是返回值的类型io_lib:format/2
  • 然后第一个双引号表示另一个列表,该列表可能是一个字符串,它是语法糖,但它不是结果的一部分(我说也许是因为任何看起来像字符串的列表都将显示为带有漂亮打印效果的字符串),
  • 最后\"是代表单个字符“

您可以评估每个字符串的长度以验证差异:

  • 3 =长度(“ efg”)。
  • 5 =长度(“ \” efg \“”)。

如果要获取不带引号的字符串,则必须使用控件格式 ~s

1> [Res] = io_lib:format("~s",[[101,102,103]]).
["efg"]
2> length(Res).
3
3> [Res] = io_lib:format("~s",[Res]).          
["efg"]

当然,最后一行显示我的示例很愚蠢。使用io_lib:format("~s ~s!",["Hello","world"]).或更复杂的格式,结果为类型chars()char()的列表chars()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章