ruby正则表达式在字符串中找到前两个数字

Mik*_*ike 1 ruby regex

如果我有一个字符串

6d7411014f
Run Code Online (Sandbox Code Playgroud)

我想读取前两个整数的出现,并将最终的数字放在一个变量中

基于上面的例子我的变量将包含 67

更多例子:

d550dfe10a
Run Code Online (Sandbox Code Playgroud)

变量将是 55

我试过的是\d但是这给了我6.如何得到第二个数字?

mu *_*ort 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)

参考文献:


sid*_*yll 5

我真的无法在Ruby中完全回答这个问题,但正则表达式是:

/^\D*(\d)\D*(\d)/
Run Code Online (Sandbox Code Playgroud)

然后你必须连接$1$2(或者在Ruby中调用它们).