Ruby 如何跳过字母字符串并接受浮点/整数
我有一套绳子。我想跳过所有字符,只考虑在[0-9]或“”中有字符的字符串。 我怎样才能做到这一点。我尝试使用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”等 给出您期望的字符串和
如果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