我试图提示用户输入数据值,并检查他们输入的字符串是否只包含数字0-9:
class String
def validate(regex)
!self[regex].nil?
end
end
regex = /A[0-9]z/
validInput = false
until validInput
puts "Enter digits: "
input = gets.chomp
if !input.validate(regex)
puts "Invalid input. Seeking integer."
else
validInput = true
end
end
但是,此循环在除0
以外的所有其他数字上返回false
。我以前使用过regex = /A[1-9]z/
,但我回到它工作的地方,它不再工作了,这也意味着用户不能输入0
。
如何使用正则表达式验证用户输入仅包含数字0-9?
在[1-9]
之后添加一个+
量词(难道不应该是[0-9]
吗?你想要从0到9的数字吗?)。即regex = /A[0-9]+z/
您可以将字符类[0-9]
表示为d
,这样regex看起来更整洁:Ad+z
+
检查字符串中一个数字是否出现一次(最少)或多次。现在,您正在检查是否只存在一个数字。
s !~ /D/