Ruby 如何跳过字母字符串并接受浮点/整数

Ruby 如何跳过字母字符串并接受浮点/整数,ruby,Ruby,我有一套绳子。我想跳过所有字符,只考虑在[0-9]或“”中有字符的字符串。 我怎样才能做到这一点。我尝试使用如果str[/[a-zA-Z]+/]==str。但这给了我整数/浮点的错误 if str[/[a-zA-Z]+/] == str continue else //do something 这会产生错误:无法将Regexp转换为整数 感谢您考虑到OP正在寻找非数字字符串以继续:--str是字符串类对象,例如str=“abcd”或str=“1.95”等 给出您期望的字符串和

我有一套绳子。我想跳过所有字符,只考虑在[0-9]或“”中有字符的字符串。 我怎样才能做到这一点。我尝试使用
如果str[/[a-zA-Z]+/]==str
。但这给了我整数/浮点的错误

if str[/[a-zA-Z]+/]  == str
    continue
else
    //do something
这会产生错误:
无法将Regexp转换为整数

感谢您考虑到OP正在寻找非数字字符串以继续:--str是字符串类对象,例如str=“abcd”或str=“1.95”等


给出您期望的字符串和输出?什么是
str
?数组还是字符串?你真的确定吗?我会仔细检查,因为
Array.new[/foo/],。我做了
123[/\d+/]
。。如果str[/[a-zA-Z]+/]==str
,则只需在行
之前放置str.class
,即可进行调试。告诉我结果。为什么错误-无法将Regexp转换为整数?有什么解释吗?@ArupRakshit现在我为str变量添加了几个有效的示例,这应该可以避免提到的错误。这里OP可能使用say str=1.96,然后进行reg匹配,因此可能发生了错误。是。。这就是原因。。我正期待着你写下你的答案。。我知道,但是等着发到最后你应该。。因为这个答案并没有解决你们的实际问题。给我们这些信息,我在评论中问道。@nish str值是多少,你可以提供你的错误堆栈,或者只提供你使用的str。如果您分配的是数字(整数或浮点数),它应该是字符串数字。谢谢您的回答,但您能否提供一些注释说明它在做什么?如果发布另一个答案,您是否也可以确保它比已经发布的答案有所改进。
regExp = /^[0-9]\d*(\.\d+)?$/

unless str[regExp].eql?(str)
    # continue
else 
    # do something
end
if (str =~ /[a-zA-Z]+/).nil? #if there are no letters in str
  #continue with string
else
  #Regex test failed
end