Я должен проверить, чтобы видеть, содержит ли строка по крайней мере одно число в нем с помощью Ruby (и я принимаю своего рода regex?).
Как я сделал бы это?
Вы можете использовать метод = ~
класса String
с регулярным выражением / \ d /
в качестве аргумента.
Вот пример:
s = 'abc123'
if s =~ /\d/ # Calling String's =~ method.
puts "The String #{s} has a number in it."
else
puts "The String #{s} does not have a number in it."
end
if /\d/.match( theStringImChecking ) then
#yep, there's a number in the string
end
Вместо того, чтобы использовать что-то вроде "s = ~ / \ d /", я выбираю более короткий s [/ \ d /], который возвращает nil для промах (AKA false в условном тесте) или индекс попадания (AKA true в условном тесте). Если вам нужно фактическое значение, используйте s [/ (\ d) /, 1]
Все должно работать одинаково и в основном это выбор программиста.
В качестве альтернативы, без использования регулярного выражения:
def has_digits?(str)
str.count("0-9") > 0
end