如果我有一个字符串
6d7411014f
Run Code Online (Sandbox Code Playgroud)
我想读取前两个整数的出现,并将最终的数字放在一个变量中
基于上面的例子我的变量将包含 67
更多例子:
d550dfe10a
Run Code Online (Sandbox Code Playgroud)
变量将是 55
我试过的是\d但是这给了我6.如何得到第二个数字?
我会用scan这种东西:
n = my_string.scan(/\d/)[0,2].join.to_i
Run Code Online (Sandbox Code Playgroud)
如果没有两个数字,你必须决定你想做什么.
例如:
>> '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
Run Code Online (Sandbox Code Playgroud)
参考文献:
我真的无法在Ruby中完全回答这个问题,但正则表达式是:
/^\D*(\d)\D*(\d)/
Run Code Online (Sandbox Code Playgroud)
然后你必须连接$1和$2(或者在Ruby中调用它们).