Ruby 如何转换数组输出格式?
我自动生成了一个Ruby narray,它的形式是:Ruby 如何转换数组输出格式?,ruby,regex,arrays,string,Ruby,Regex,Arrays,String,我自动生成了一个Ruby narray,它的形式是:[x,y],其中x和y是整数 我想将[x,y]转换为这种类型的字符串: "p\.x\.y" 我没有成功地使用正则表达式转换它。正则表达式用于匹配模式,而不是生成字符串 要实现您想要的功能,只需将splat操作符与sprintf一起使用即可: array = [1,2] puts sprintf("p\\.%d\\.%d", *array) 这将以另一种方式输出“p\.1\.2”: x = [1,2] puts "p\\.#{x[0]}\\.
[x,y]
,其中x
和y
是整数
我想将[x,y]
转换为这种类型的字符串:
"p\.x\.y"
我没有成功地使用正则表达式转换它。正则表达式用于匹配模式,而不是生成字符串 要实现您想要的功能,只需将splat操作符与
sprintf
一起使用即可:
array = [1,2]
puts sprintf("p\\.%d\\.%d", *array)
这将以另一种方式输出“p\.1\.2”:
x = [1,2]
puts "p\\.#{x[0]}\\.#{x[1]}" #=> p\.1\2
p是一个固定的字母,它表示任何发生的事情,从一个“p”字符串开始,然后在数组元素上循环添加带有任何修饰的单个元素,例如“\”。正则表达式用于字符串解析,而不是字符串生成。谢谢,最后很明显,我没有注意到我可以这样做,我非常确定我必须使用正则表达式,结果我错了。它更容易使用:
p\.%d\.%d%[1,2]#=>“p\\.1\\.2”
,它也输出为p\.1\.2
。与其将格式嵌入双引号(强制使用双转义反斜杠),不如使用单引号。