Ruby 不正确的数组管理

标签 ruby arrays

我有以下代码:

nonce = data.scan(/nonce="(.*)"/)

data 是一个字符串,匹配的字符串赋值给nonce变量,nonce变量自动变成一个数组。 现在,如果我

puts nonce[0]

我会正确打印我的值:

51d8852d

但如果使用:

puts "final string #{md1}:#{nonce[0]}:#{md2}"

输出将是:

df49f55acfd9d21837fd840644f251b4:["51d8852d"]:3b7718806908d2a4456086be7daba94ccd36ea19fd2bfa80ae41fa8be23433b7

但不应该有任何方括号或双引号,我应该只获取数组的值。 它应该是这样的:

df49f55acfd9d21837fd840644f251b4:51d8852d:3b7718806908d2a4456086be7daba94ccd36ea19fd2bfa80ae41fa8be23433b7

你能建议我如何解决这个问题吗? 谢谢

大卫

最佳答案

当您对捕获组使用扫描时,结果是一个数组数组,因此您要使用 nonce[0][0]。您感到困惑是因为您的第一个示例将数组 nonce[0] 馈送到 puts,后者通过打印出每个元素来处理数组。如果你执行 puts nonce[0].class,你会看到......

关于Ruby 不正确的数组管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4170279/

相关文章:

c - 如何在 C 中创建数组的 scanf 和 printf 函数?

使用atoi将char数组转换为int数组

ruby - 全局变量的替代品

ruby - 如何覆盖 String.scan 和 FindAllString 中的匹配行为?

ruby-on-rails - 使用外部 api (salesforce) 在 Rails 应用程序中将变量设置为字段映射组

c - 当数组为空时,ARRAY_SIZE 是否返回未定义的行为?

java - 方法签名中的对象数组

ruby-on-rails - 如何从电子邮件中获取域名

ruby-on-rails - Rails 时间比较

c++ - 链表中的动态大小数组