(Ruby) Есть ли функция, позволяющая легко найти первое число в строке? - PullRequest
16 голосов
/ 08 октября 2009

Например, если бы я набрал «ds.35bdg56», функция вернула бы 35. Есть ли готовая функция для чего-то подобного или мне нужно перебрать строку, найти первое число и посмотреть, как долго идет, а затем вернуть это?

Ответы [ 3 ]

21 голосов
/ 08 октября 2009
>>  'ds.35bdg56'[/\d+/]
=> "35"

Или, так как вы попросили функцию ...

$ irb
>> def f x; x[/\d+/] end
=> nil
>> f 'ds.35bdg56'
=> "35"

Вы могли бы действительно повеселиться с этим:

>> class String; def firstNumber; self[/\d+/]; end; end
=> nil
>> 'ds.35bdg56'.firstNumber
=> "35"
5 голосов
/ 08 октября 2009
text = "ds.35bdg56"
x = /\d+/.match(text)
puts x #will return 35 (i hope this helps)
3 голосов
/ 08 октября 2009
text[/\d+/].to_i
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...