我正在开发一个过程,该过程从一些可以在选择列表中找到的元素中检索数字。例如,从“test element(100)”我试图获得数字“100”。 我使用此代码来执行此操作,它捕获两个括号之间的数字:
before = Regexp.escape '('
after = Regexp.escape ')'
x = "test element (100)"[-5, 5].scan(/#{before}(.*?)#{after}/).flatten
此代码有效,X的值为100.但这个“100”实际上是一个数组。
是否有人知道如何将数组“100”转换为整数“100”?
谢谢。
答案 0 :(得分: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
答案 1 :(得分:1)
你为什么不用:
"test element (100)"[/\d+/]
返回:
"100"
如果需要整数值,请使用:
"test element (100)"[/\d+/].to_i
答案 2 :(得分:0)
x.first
应该给你。