2015-04-29 39 views
-7

我需要一个正则表达式,它只匹配以下数组中的三位数字。我需要结果是一个新的数组。获取阵列中的所有三位数字并存储在新阵列中

输入:

my_array = [111,45456,456,74897,787,45466,789,6587,784,234,456,4658,4587,235,456] 

所需的输出:

new_array = [111,456,787,789,784,234,456,235,456] 
+0

您的问题是? – sawa

+0

你的句子是难以理解的。 – sawa

+0

正则表达式如何匹配数字? – sawa

回答

2

为什么要在数字上进行正则表达式?您可以选择所有小于1000且大于99的数字。

my_array.select { |n| n<1000 && n>99 } 
0

就在正则表达式是这样的:/^\d{3}$/。但是如果你想要一个表达式来返回一个匹配这个表达式的值的数组,那么它会这样做:my_array.select{ |num| num.to_s.match(/^\d{3}$/) }

看看RegExr了解更多关于正则表达式。

+0

谢谢泰勒 – kirankumar

+0

不客气kirankumar,我很高兴我能帮上忙。 –

+0

谢谢泰勒,但我使用这一个,我得到了所有阵列中的所有三个元素。像下面的111,454,456,748,787,454,789,658,784,234,456,465,458,235,456。但我只需要三位数字。 – kirankumar