Ruby 为什么Array.to_返回括号?

Ruby 为什么Array.to_返回括号?,ruby,regex,arrays,html-parsing,Ruby,Regex,Arrays,Html Parsing,对于数组,键入时: puts array[0] ==> text 但是当我打字的时候 puts array[0].to_s ==> ["text"] 为什么用括号和引号?我错过了什么 附录:我的代码如下所示 page = open(url) {|f| f.read } page_array = page.scan(/regex/) #pulls partial urls into an array partial_url = page_array[0].to_s full

对于数组,键入时:

puts array[0]

==> text 
但是当我打字的时候

puts array[0].to_s

==> ["text"]
为什么用括号和引号?我错过了什么

附录:我的代码如下所示

page = open(url)  {|f| f.read }
page_array = page.scan(/regex/) #pulls partial urls into an array
partial_url = page_array[0].to_s
full_url = base_url + partial_url #adds each partial url to a consistent base_url
puts full_url
我得到的是:

http://www.stackoverflow/["questions"]

您需要向我们展示正则表达式,以便真正正确地解决此问题,但这可以做到:

替换这个

partial_url = page_array[0].to_s
用这个

partial_url = page_array[0][0]

这并不一定能解决为什么你会得到一个折叠的数组,但是你可以将它展平,然后像这样调用第一个元素

page_array = page.scan(/regex/).flatten
展平取出堆叠阵列并创建一个级别,因此如果您有
[1,2,3,4,5,6]]
并在其上调用展平,您将得到
[1,2,3,4,5,6]

它也比使用
数组[0][0]
更健壮,因为如果在第一个元素中嵌套了两个以上的数组,则会遇到相同的问题


尽管Iain是正确的,但如果没有看到正则表达式,我们就无法找出根本原因。

to\s只是一个别名,用于检查数组类

这并不是说这意味着很多,而不是期望array.to_s返回一个字符串,实际上它返回的是array.inspect,根据方法的名称,它不是您真正想要的

如果你只想要“勇气”,试试:

如果阵列中有多个元素:

page_array.join(" ")
这将使:

page_array = ["test","this","function"]
返回:

"test this function"
数组上的“to_s”返回的内容取决于您使用的Ruby版本,如上所述。1.9.X返回:

"[\"test\"]"

这将按原样打印阵列,不带括号

array.join(", ")

你的
数组中有什么?你说的是哪一个Ruby版本(1.8和1.9之间有区别)向我们展示了你的数组的定义,但在你的问题中;那难以辨认。试试
p数组
,我想你会得到
[[“text”]]
输出。我只是在猜测。@Iain但这能让我得到什么?我怎样才能得到文本,没有引号和括号?谢谢!成功了。但你是对的,这是一个正则表达式问题。
array.join(", ")