【问题标题】:How do I convert an array output format? [closed]如何转换数组输出格式? [关闭]
【发布时间】:2013-10-27 16:15:25
【问题描述】:

我有一个自动生成的 Ruby narray,它具有这种形式:[x,y],其中 xy 是整数。

我想把[x,y]转换成这种类型的字符串:

"p\.x\.y"

我没有成功地使用正则表达式对其进行转换。

【问题讨论】:

  • p 是一个固定的字母,不管发生什么
  • 以 'p' 字符串开始,然后循环遍历数组元素,添加带有您喜欢的任何装饰的单个元素,例如 '\.'
  • 正则表达式用于字符串解析,而不是字符串生成。

标签: ruby regex arrays string


【解决方案1】:

正则表达式用于匹配模式,而不是生成字符串。

要完成你想要的,只需使用带有 sprintf 的 splat 运算符:

array = [1,2]
puts sprintf("p\\.%d\\.%d", *array)

这将输出"p\.1\.2"

【讨论】:

  • 谢谢,最后很明显,我没有注意到我可以这样做,我非常确定我必须使用正则表达式,所以我错了
  • 使用String.%更方便:'p\.%d\.%d' % [1,2] # => "p\\.1\\.2",也输出为p\.1\.2。不要将格式嵌入双引号中,这会强制双转义反斜杠,而是使用单引号。
【解决方案2】:

另一种方式:

x = [1,2]
puts "p\\.#{x[0]}\\.#{x[1]}" #=> p\.1\2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    • 2013-05-30
    • 2014-08-21
    • 1970-01-01
    相关资源
    最近更新 更多