0

我正在研究一个从可以在选择列表中找到的某些元素中检索数字的过程。例如,从“测试元素(100)”我试图得到数字“100”。我使用此代码来执行此操作,它捕获两个括号之间的数字:

            before = Regexp.escape '('
            after = Regexp.escape ')'
            x = "test element (100)"[-5, 5].scan(/#{before}(.*?)#{after}/).flatten

这段代码有效,X 的值为 100。但这个“100”实际上是一个数组。

有人知道如何将数组“100”转换为整数“100”吗?

谢谢你。

4

3 回答 3

1

为什么不是这个?

x = "test element (100)"[/(?<=\()\d+(?=\))/].to_i # 100

例子:

1.9.3-p194 :001 > "test element (100)"[/(?<=\()\d+(?=\))/].to_i
 => 100
1.9.3-p194 :002 > "test (250) other stuff"[/(?<=\()\d+(?=\))/].to_i
 => 250 
于 2012-08-30T15:15:34.477 回答
1

你为什么不使用:

"test element (100)"[/\d+/]

返回:

"100"

如果您想要整数值,请使用:

"test element (100)"[/\d+/].to_i
于 2012-08-30T18:49:18.603 回答
0
x.first

应该给你。

于 2012-08-30T15:05:03.613 回答