Как я проверяю, имеет ли строка по крайней мере одно число в ней с помощью Ruby?

Я должен проверить, чтобы видеть, содержит ли строка по крайней мере одно число в нем с помощью Ruby (и я принимаю своего рода regex?).

Как я сделал бы это?

14
задан Shpigford 8 February 2010 в 20:52
поделиться

4 ответа

Вы можете использовать метод = ~ класса 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
36
ответ дан 1 December 2019 в 06:12
поделиться
if /\d/.match( theStringImChecking ) then
   #yep, there's a number in the string
end
5
ответ дан 1 December 2019 в 06:12
поделиться

Вместо того, чтобы использовать что-то вроде "s = ~ / \ d /", я выбираю более короткий s [/ \ d /], который возвращает nil для промах (AKA false в условном тесте) или индекс попадания (AKA true в условном тесте). Если вам нужно фактическое значение, используйте s [/ (\ d) /, 1]

Все должно работать одинаково и в основном это выбор программиста.

2
ответ дан 1 December 2019 в 06:12
поделиться

В качестве альтернативы, без использования регулярного выражения:

def has_digits?(str)
  str.count("0-9") > 0
end
8
ответ дан 1 December 2019 в 06:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: