如果我有一個像紅寶石正則表達式找到的兩個數字中的字符串
6d7411014f
字符串我想讀前兩個整數的發生,並把一個變量
根據最終的數字例如我的上述變量將包含67
多個例子:
d550dfe10a
變量將是55
我試過的是\d
,但那給了我6.我如何得到第二個數字?
如果我有一個像紅寶石正則表達式找到的兩個數字中的字符串
6d7411014f
字符串我想讀前兩個整數的發生,並把一個變量
根據最終的數字例如我的上述變量將包含67
多個例子:
d550dfe10a
變量將是55
我試過的是\d
,但那給了我6.我如何得到第二個數字?
大廈關閉sidyll的回答,
string = '6d7411014f'
matched_vals = string.match(/^\D*(\d)\D*(\d)/)
extracted_val = matched_vals[1].to_i * 10 + matched_vals[2].to_i
我會使用scan
對於這樣的事情:
n = my_string.scan(/\d/)[0,2].join.to_i
你不得不決定你想,如果有大家還不怎麼辦兩個數字雖然。
例如:
>> '6d7411014f'.scan(/\d/)[0,2].join.to_i
=> 67
>> 'd550dfe10a'.scan(/\d/)[0,2].join.to_i
=> 55
>> 'pancakes'.scan(/\d/)[0,2].join.to_i
=> 0
>> '6 pancakes'.scan(/\d/)[0,2].join.to_i
=> 6
參考文獻:
您正在搜索的第2位不是整數。如果您要搜索前兩個整數,則結果爲67411014. – ayckoster